程序问答   发布时间:2022-06-02  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了AES / CBC / PKCS5Padding与AES / CBC / PKCS7Padding具有256键大小的性能Java大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决AES / CBC / PKCS5Padding与AES / CBC / PKCS7Padding具有256键大小的性能Java?

开发过程中遇到AES / CBC / PKCS5Padding与AES / CBC / PKCS7Padding具有256键大小的性能Java的问题如何解决?下面主要结合日常开发的经验,给出你关于AES / CBC / PKCS5Padding与AES / CBC / PKCS7Padding具有256键大小的性能Java的解决方法建议,希望对你解决AES / CBC / PKCS5Padding与AES / CBC / PKCS7Padding具有256键大小的性能Java有所启发或帮助;

块大小是所使用的密码算法的属性。对于AES,它始终为16个字节。

因此严格来说,PKCS5padding不能与AES一起使用,因为它仅针对8字节的块大小定义。我假设AES / CBC / PKCS5padding在内部被解释为AES / CBC / PKCS7padding。

这些填充方案之间的唯一区别是PKCS7padding将块大小作为参数,而对于PKCS5padding则将其固定为8个字节。当块大小为8个字节时,它们的作用完全相同。

解决方法

我目前正在使用 256个字节的* 密钥大小来AES/CBC/PKCS5Padding用Java加密文件,但是在搜索时我在stackexchange@H_197_17@ PKCS#5-PKCS#7填充上发现了它,并提到:@H_197_17@ *

所以我想知道

  1. 相对于上述配置,性能AES/CBC/PKCS7Padding会更好AES/CBC/PKCS5Padding吗?
  2. 正如我们所提到的,我们如何在Java中配置块大小

我的示例代码是

SecureRandom rnd = new SecureRandom();
IvParameterSpec iv = new IvParameterSpec(rnd.generateSeed(16));

KeyGenerator generator = KeyGenerator.geTinstance("AES");
generator.init(256);
SecretKey k = generator.generateKey();

Cipher c = Cipher.geTinstance("AES/CBC/PKCS5Padding");
c.init(Cipher.ENCRYPT_MODE,k,iv);
@H_262_42@

大佬总结

以上是大佬教程为你收集整理的AES / CBC / PKCS5Padding与AES / CBC / PKCS7Padding具有256键大小的性能Java全部内容,希望文章能够帮你解决AES / CBC / PKCS5Padding与AES / CBC / PKCS7Padding具有256键大小的性能Java所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。