我正在网上查找,但找不到 Java 中使用零填充的 3DES 加密示例。难道不可能吗?你能帮我吗,谢谢。 (我不是 Java 开发人员,但我需要这个。我们在 .NET 上使用 PaddingMode.Zeros)
最佳答案
它可以从 Bouncy CaSTLe 提供者处获得,但不能从 Java 本身获得。
Bouncy CaSTLe 中的“ZeroPadding”
选项的“问题”是它仍然总是填充,即使明文长度已经是 8 的倍数。是 Bouncy 的内部设计“问题”。 .NET 可能并不总是用零填充,PHP当然也不总是用零填充。从这个意义上来说,有两种填充方案,称为零填充。如果填充方案不存在标准,这就是您得到的结果。
自己实现零填充当然相对容易。通常不建议实现加密原语,但我想可以排除零填充。如果您的协议(protocol)依赖 block 密码模式填充来保证安全,那么您已经遇到麻烦了。
不过,你确实应该升级你的算法和操作模式。仅将其用于向后兼容性,并确保您可以逐步淘汰它。
关于java - Java 中使用零填充的三重 DES 加密/解密,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31671077/