/** * CBC加密 * @param key 密钥 3 * 8位 * @param keyiv IV 8位 * @param data 明文 * @return Base64编码的密文 * @throws Exception */ public static byte[] des3EncodeCBC(byte[] key, byte[] keyiv, byte[] data) throws Exception { Key deskey = null; DESedeKeySpec spec = new DESedeKeySpec(key); SecretKeyFactory keyfactory = SecretKeyFactory.getInstance("desede"); deskey = keyfactory.generateSecret(spec); Cipher cipher = Cipher.getInstance("desede" + "/CBC/PKCS5Padding"); IvParameterSpec ips = new IvParameterSpec(keyiv); cipher.init(Cipher.ENCRYPT_MODE, deskey, ips); byte[] bOut = cipher.doFinal(data); return bOut; } /** * 解密 * @param key * @param keyiv * @param data * @return * @throws Exception */ public static byte[] des3DecodeCBC(byte[] key, byte[] keyiv, byte[] data) throws Exception { DESedeKeySpec dks = new DESedeKeySpec(key); SecretKeyFactory keyFactory = SecretKeyFactory.getInstance("desede"); SecretKey securekey = keyFactory.generateSecret(dks); // 解密 Cipher cipher = Cipher.getInstance("desede" + "/CBC/PKCS5Padding"); IvParameterSpec ivp = new IvParameterSpec(keyiv); cipher.init(Cipher.DECRYPT_MODE, securekey, ivp); return cipher.doFinal(data); }
Java学习之3DES加解密
最新推荐文章于 2024-08-18 21:52:13 发布