当前位置: 首页 > 知识库问答 >
问题:

AES/CBC/PKCS5填充与AES/CBC/PKCS7填充,具有256个密钥大小的性能java

华森
2023-03-14

我目前使用< code > AES/CBC/PKCS 5 Padding 对Java文件进行加密,密钥大小为256字节,但在搜索时,我在stack exchange PKCS # 5-PKCS # 7 Padding上发现了它,

PKCS#5填充是8字节块大小的PKCS#7填充的子集

所以我想知道

> < li >对于上述配置,< code > AES/CBC/pkcs 7 padding 的性能会比< code > AES/CBC/pkcs 5 padding 好吗? < li >我们如何在Java中配置提到的块大小 < blockquote > < p>PKCS#7填充适用于1到255字节的任何块大小。

我的示例代码是,

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

共有1个答案

赏新知
2023-03-14

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

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

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

 类似资料:
  • 我正在尝试将java代码转换为NodeJs代码。这有点复杂,因为定制的格式包括密码和salt。 在main方法中有一个例子。 以下是我的java代码: 我正在尝试下面这样的JS代码,但不知道我做错了什么: 它抛出一个错误: 谢谢

  • 如果公司营业额大于50亿卢比,GST理事会已批准将企业对企业(B2B)发票的“电子发票”或“电子发票”实施到GST系统。参考商品及服务税门户 API :einv-apisandbox.nic.in/index.html 我必须使用APP密钥对加密的SEK进行解密,并使用解密的SEK对json数据进行编码,以便发布Einvoice Generation,我找到了java和C#的示例代码,我已经用PH

  • 问题内容: 我目前正在使用 256个字节的* 密钥大小来用Java加密文件,但是在搜索时我在stackexchange PKCS#5-PKCS#7填充上发现了它,并提到: * PKCS#5填充是8个字节块大小的PKCS#7填充的子集 所以我想知道 相对于上述配置,性能会更好吗? 正如我们所提到的,我们如何在Java中配置块大小 PKCS#7填充适用于从1到255字节的任何块大小。 我的示例代码是

  • 我需要使用AES-256-CBC和PKCS7填充加密用户和密码,以连接到它不是我的.NET服务器应用程序。 首先,我使用Diffie-Hellman算法获得了公共服务器密钥,遵循本网站上的说明: https://doc.developer.milestonesys.com/mipsdkmobile/index.html?base=content_0.html 从服务器获取公钥的代码是: 一旦我拿到

  • 我正在尝试解码服务器返回的php数据:我知道数据AES 256已解码,并且有PKCS7填充,但无法确定它使用的是哪种块模式 这是我的php函数: 和编码数据的示例 当我用ECB (MCRYPT_MODE_ECB)解码时,它只解码数据的开始部分,其余部分不可读 当用CBC(MCRYPT_MODE_CBC)模式解码时,它的开头不可读 结果应该是(我在客观-c中使用通用密码器在Mac上得到的): 有人知

  • 我一直在尝试用Python实现AES CBC解密。由于加密文本不是16字节的倍数,因此需要填充。没有填充,这个错误浮出水面 "TypeError:奇数长度字符串" 但我找不到在PyCrypto Python中实现PKCS5的适当参考。是否有任何命令来实现这一点?谢谢 在研究了马库斯的建议后,我这样做了。 我的目标实际上是使用此代码解密十六进制消息(128字节)。但是,输出 " ?:" 非常小,un