gpt4 book ai didi

c# - AES 加密中的 javax.crypto.IllegalBlockSizeException

转载 作者:行者123 更新时间:2023-12-01 16:11:53 29 4
gpt4 key购买 nike

我在java中使用AES/CBC/PKCS5Padding填充标准,我的 friend 在c#.NET中使用PKCS7标准如果我的 friend 使用 AES 加密数据并向我发送 key ,那么我就可以解密它。

但是,如果我的数据长度增加超过 2920 字节,那么如果我在 c#.NET 中加密数据并在 java 中解密数据,那么我的解密效果就不好。它给了我以下错误。

“javax.crypto.IllegalBlockSizeException:使用填充密码解密时,输入长度必须是 16 的倍数”

谢谢巴比

最佳答案

您再次忘记刷新缓冲区,这意味着数据流不完整。

[编辑] 我不了解 C#,但在 Java 中,必须在所有数据到达后调用 doFinal() 一次。 (参见the docs)。

问题的根源在于加密 API 需要知道您何时完成。它无法从数据中看出,您必须调用一个方法来说“将其包装起来,创建最终的校验和,等等,以便接收器可以对其进行解码”。

关于c# - AES 加密中的 javax.crypto.IllegalBlockSizeException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/839213/

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