1. 程式人生 > >Java學習之3DES加解密

Java學習之3DES加解密

/**
 * 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); }