1 . 前端js
用的CryptoJS
function encrypt(word){
var iv=CryptoJS.enc.Utf8.parse('0000000000000000'); //感觉这个iv不对
var key = CryptoJS.enc.Utf8.parse("SZSCjDcHtlnrYPzD");
var srcs = CryptoJS.enc.Utf8.parse(word);
var encrypted = CryptoJS.AES.encrypt(srcs, key, {
iv:iv,
mode:CryptoJS.mode.CBC,
padding: CryptoJS.pad.Pkcs7
});
return encrypted.toString();
}
2 . 后端java
public final static int AES_KEY_LENGTH = 32;
private final static byte[] IV = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};
private final static String ALGORITHM = "AES";
private final static String MODE = "AES/CBC/PKCS5Padding";
//解密部分
public static byte[] decrypt(byte[] decryptKey, byte[] decryptBytes) throws Exception {
IvParameterSpec zeroIv = new IvParameterSpec(IV);
SecretKeySpec key = new SecretKeySpec(decryptKey, ALGORITHM);
Cipher cipher = Cipher.getInstance(MODE);
cipher.init(Cipher.DECRYPT_MODE, key, zeroIv);
return cipher.doFinal(decryptBytes);
}
算法一脸懵逼,懂的大神给看看错在哪,不甚感激~
已解决,iv为空字符串就行了