Java DES 加解密("DES/CBC/PKCS5Padding")

Posted FrankYou

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java DES 加解密("DES/CBC/PKCS5Padding")相关的知识,希望对你有一定的参考价值。

    /**
     * DES加密
     *
     * @param data 加密数据
     * @param key  密钥
     * @return 返回加密后的数据
     */
    public static byte[] desEncrypt(byte[] data, String key, String charset) {
        try {
            Cipher cipher = Cipher.getInstance("DES/CBC/PKCS5Padding");
            byte[] k = charset == null || charset.trim().isEmpty() ? key.getBytes() : key.getBytes(charset);
            SecretKey secretKey = SecretKeyFactory.getInstance("DES").generateSecret(new DESKeySpec(k));
            cipher.init(Cipher.ENCRYPT_MODE, secretKey, new IvParameterSpec(k));
            return cipher.doFinal(data);
        } catch (Exception e) {
            return null;
        }
    }

    /**
     * DES解密
     *
     * @param data 解密数据
     * @param key  密钥
     * @return 返回解密后的数据
     */
    public static String desDecrypt(byte[] data, String key, String charset) {
        try {
            Cipher cipher = Cipher.getInstance("DES/CBC/PKCS5Padding");
            byte[] k = charset == null || charset.trim().isEmpty() ? key.getBytes() : key.getBytes(charset);
            cipher.init(Cipher.DECRYPT_MODE, SecretKeyFactory.getInstance("DES").generateSecret(new DESKeySpec(k)), new IvParameterSpec(k));
            if (charset == null || charset.trim().isEmpty()) {
                return new String(cipher.doFinal(data));
            }
            return new String(cipher.doFinal(data), charset);
        } catch (Exception e) {
            return null;
        }
    }

 

以上是关于Java DES 加解密("DES/CBC/PKCS5Padding")的主要内容,如果未能解决你的问题,请参考以下文章

6. Java 加解密技术系列之 3DES

一个java的DES加解密类转换成C#

java shiro加盐之后怎么反解密

Java 加解密技术系列之 DES

java进行3des加密传过来的数据,php怎么解密?

3DES 加解密