gpt4 book ai didi

javascript - Aes javascript 加密 - java 解密

转载 作者:太空宇宙 更新时间:2023-11-04 11:33:40 25 4
gpt4 key购买 nike

我正在尝试在 javascript 中加密消息(使用 crypto-js 库)并在 java 中解密。

这是 JavaScript 代码:

var key = CryptoJS.enc.Utf8.parse(aesPassword);
var ive = CryptoJS.enc.Utf8.parse(aesIv);
var encryptedData = CryptoJS.AES.encrypt(dataToEncrypt, key, {mode: CryptoJS.mode.CBC, padding: CryptoJS.pad.Pkcs7, iv: ive});

这是java代码:

final Cipher cipher = Cipher.getInstance("AES/CBC/PKCS5Padding");
final SecretKeySpec key = new SecretKeySpec(aesPassword().getBytes("UTF-8"), "AES");
cipher.init(Cipher.DECRYPT_MODE, key, new IvParameterSpec(aesIv().getBytes("UTF-8")));
byte[] decrypted = cipher.doFinal(DatatypeConverter.parseBase64Binary(message));

但是当我尝试用 Java 解密时,会抛出此异常:javax.crypto.BadPaddingException:给定的最终 block 未正确填充

密码:6h2faBePVxpgyFSNIV: NKOzRKrmEMKs1kE4要加密的数据:“{token:cMGOIrYlJm9lPhPW}”

有什么帮助吗?

提前致谢

最佳答案

我可能是错的,但我认为在这种情况下 BadPaddingException 意味着您没有成功执行解密的正确 key 。该异常本质上意味着 key 要么太短要么太长(我认为)。

Try{
String decrypted = aes.decrypt(...);
System.out.println(decryted);
}catch(Exception e){

}

类似上面的代码可能会起作用,因为仅当未捕获 BadPaddingException 时才会到达 System.out,这可以在尝试可能的解密 key 时在循环中使用,例如,如果您尝试计算所有可能的解密 key 。

关于javascript - Aes javascript 加密 - java 解密,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43518391/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com