当前位置:  开发笔记 > 编程语言 > 正文

Java密码 - AES填充问题

如何解决《Java密码-AES填充问题》经验,为你挑选了1个好方法。

我使用的是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()) ;

任何和所有回复赞赏!

提前谢谢,Ciarán



1> Michael Borg..:

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

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

推荐阅读
wurtjq
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有