/**
* 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)
;
}
转载请注明原文地址: https://ju.6miu.com/read-675352.html