【发布时间】:2017-12-25 11:53:54
【问题描述】:
我在 JavaScript 中加密并在 Java 中解密,但出现以下错误:
java 中抛出的错误: java.lang.Exception:给定最终块未正确填充
以下是我的 Java 脚本代码:
var key =CryptoJS.enc.Utf8.parse("0123456789012345");
var ive = CryptoJS.enc.Utf8.parse("0123456789012345");
var encrypted = CryptoJS.AES.encrypt(password, key, {iv: ive});
console.log('encrypted msg = ' + encrypted.toString());
var afterEncryptionText = encrypted.toString();
console.log("encrypted password: " + afterEncryptionText);
Java 代码:
public String decrypt(String cipherText) throws Exception {
try {
String encryptionKey = "0123456789012345";
String ive = "0123456789012345";
final Cipher cipher = Cipher.getInstance("AES/CBC/PKCS5Padding", "SunJCE");
final SecretKeySpec key = new SecretKeySpec(encryptionKey.getBytes("UTF-8"), "AES");
cipher.init(Cipher.DECRYPT_MODE, key, new IvParameterSpec(ive.getBytes("UTF-8")));
return new String(cipher.doFinal(cipherText.getBytes("UTF-8")),"UTF-8");
}
catch(Exception e){
throw new Exception(e.getMessage());
}
}
【问题讨论】:
-
我没有使用 Ajax。我只是在 Javascript 中加密并在 java 中解密
标签: javascript java node.js encryption