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; 
        } 
    }

 

原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/15978.html

(0)
上一篇 2021年7月19日
下一篇 2021年7月19日

相关推荐

发表回复

登录后才能评论