AES 前端加密,后端解密不出来,代码如下

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

算法一脸懵逼,懂的大神给看看错在哪,不甚感激~

阅读 4.8k
1 个回答

已解决,iv为空字符串就行了

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题