【发布时间】:2015-07-28 21:07:20
【问题描述】:
我正在网上寻找,但找不到在 Java 中使用零填充的 3DES 加密示例。不可能吗?你能帮帮我吗,谢谢。 (我不是 Java 开发人员,但我需要这个。我们在 .NET 上使用 PaddingMode.Zeros)
【问题讨论】:
标签: java cryptography padding 3des
我正在网上寻找,但找不到在 Java 中使用零填充的 3DES 加密示例。不可能吗?你能帮帮我吗,谢谢。 (我不是 Java 开发人员,但我需要这个。我们在 .NET 上使用 PaddingMode.Zeros)
【问题讨论】:
标签: java cryptography padding 3des
可从 Bouncy Castle 提供程序获得,但不能从 Java 本身获得。
Bouncy Castle 中 "ZeroPadding" 选项的“问题”是它仍然总是填充,即使明文长度已经是 8 的倍数。这是一个内部设计“问题”有弹性。 .NET 可能并不总是用零填充,而 PHP 当然 并不总是用零填充。从这个意义上说,有 两种 填充方案称为零填充。如果填充方案不存在标准,这就是您得到的结果。
自己实现零填充当然相对容易。通常不建议实现加密原语,但我想零填充可以排除在外。如果您的协议依赖于分组密码模式填充来确保安全,那么您已经遇到了麻烦。
不过,您确实应该升级您的算法和操作模式。仅将其用于向后兼容,并确保您可以逐步淘汰它。
【讨论】:
ZeroPadding 加密 16 个字节,你会得到 16 个字节还是 24 个字节?您能否检查一下,我的新笔记本电脑上没有 .NET 开发环境。