gpt4 book ai didi

java - 使用 des ede、javax.crypto.badpaddingexception 的解密错误

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

我的代码中存在一个错误,它无法让我正确解密!我只将八个字节的数据传递给 dataBytes 并且我正在传递keyBytes 的 24 字节 key 。我试图将解密的数据作为字节数组返回。我不断收到错误的填充异常。

谢谢!

这是代码片段:

private static byte[] DESEdeDecrypt(byte[] keyBytes, byte[] dataBytes){

byte[] decryptedData = null;
try{
DESedeKeySpec keySpec = new DESedeKeySpec(keyBytes, 0);
SecretKeyFactory keyFactory = SecretKeyFactory.getInstance("DESede");
SecretKey key = keyFactory.generateSecret(keySpec);
Cipher cipher = Cipher.getInstance("DESede");
cipher.init(Cipher.DECRYPT_MODE, key);
decryptedData = cipher.doFinal(dataBytes);
}
catch(Exception e){System.out.println(e);}

return decryptedData;

最佳答案

您必须使用与加密相同的填充来解密。最好明确地设置它而不是依赖默认值。最好也指定两端的模式:

Cipher cipher = Cipher.getInstance("DESede/CBC/PKCS5Padding");

DESede 速度慢且过时。除了与旧代码兼容之外,您不应该使用它。对于新工作,最好使用 AES。

关于java - 使用 des ede、javax.crypto.badpaddingexception 的解密错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6846859/

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