【问题标题】:AES with PKCS#5 padding带有 PKCS#5 填充的 AES
【发布时间】:2023-03-17 01:10:01
【问题描述】:

在很多地方,我看到使用 AES 和 PKCS#5 填充的 Java 代码。我不明白这怎么可能。

PKCS#5 填充适用于块大小为

【问题讨论】:

  • PKCS#7 在内部使用。实际上这两种方法在技术上是相同的,忽略了 PKCS#5 的大小限制。
  • @Henry 你能把它作为答案添加吗?(最好有一些代码链接显示内部使用了 PKCS#7)。
  • 我投票结束这个问题,因为它不是关于编程问题,而是关于密码学。另外,如前所述,crypto.stackexchange.com/questions/11272/… 已经回答了
  • @OlegEstekhin 问题不在于密码学的使用。它与执行此操作的 API 有关。我很清楚要使用哪种填充方案以及区别是什么——而不是 API 是什么,以及内部使用的是什么。此外,我还请求了 cmets 中代码的链接。

标签: java encryption aes bouncycastle jce


【解决方案1】:

代码确实使用了 PKCS#7。指定 "PKCS5Padding" 的原因很可能是由于与旧的 DES 和 3DES 密码的兼容性。请注意,PKCS#5 填充正好是 8 个字节,而不是更少。出于兼容性考虑,Bouncy Castle 通常遵循 Sun/Oracle 提供程序,但您也可以为 Bouncy Castle 提供程序使用更正确的 "PKCS7Padding"

更多信息on the crypto site(免责声明:指向我自己的热门问答)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-14
    相关资源
    最近更新 更多