gpt4 book ai didi

Java Cipher - AES 填充问题

转载 作者:搜寻专家 更新时间:2023-10-31 20:07:56 27 4
gpt4 key购买 nike

我正在使用 block 大小为 16 字节的 AES 密码。

如果我尝试加密一个 16 字节的字符串,我没有问题,但任何其他长度不是 16 的倍数都会引发异常。

我知道使用 3-DES 您可以指定一个填充类型作为算法的一部分,并且无需额外工作即可处理(例如 DES/CBC/PKCS5Padding),但是有没有一种方法可以使用 AES 来指定它?

还是我需要手动把pytes填充成16的倍数,然后在解密的时候去掉?这是一个简短的代码示例。

encrypt = Cipher.getInstance("AES", provider);
encrypt.init(Cipher.ENCRYPT_MODE, key) ;
byte[] encrypted = encrypt.doFinal(plainTxt.getBytes()) ;

感谢所有回复!

提前致谢,夏兰

最佳答案

它应该与 AES 完全相同,即填充模式必须与密码一起指定。实现哪种填充模式取决于提供者,应在其文档中进行描述。

根据 JCE 文档: http://java.sun.com/j2se/1.5.0/docs/guide/security/jce/JCERefGuide.html#AppA应该始终支持像 PKCS5Padding 这样的标准填充模式(至少,我是这么理解的)。

关于Java Cipher - AES 填充问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/340820/

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