gpt4 book ai didi

java - AES/CBC/PKCS5Padding 与 AES/CBC/PKCS7Padding 与 256 key 大小性能 java

转载 作者:IT老高 更新时间:2023-10-28 20:46:07 28 4
gpt4 key购买 nike

我目前正在使用 AES/CBC/PKCS5Padding 来加密具有 256 字节 key 大小的 Java 文件,但在搜索时我在 stackexchange PKCS#5-PKCS#7 Padding 上找到了并提到,

PKCS#5 padding is a subset of PKCS#7 padding for 8 byte block sizes

所以我想知道

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

    PKCS#7 padding would work for any block size from 1 to 255 bytes.

我的示例代码是,

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);

最佳答案

block 大小是所用密码算法的一个属性。对于 AES,它总是 16 个字节。

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

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

关于java - AES/CBC/PKCS5Padding 与 AES/CBC/PKCS7Padding 与 256 key 大小性能 java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20770072/

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