java - Java 中使用零填充的三重 DES 加密/解密

标签 java cryptography padding 3des

我正在网上查找,但找不到 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/

相关文章:

html - 为什么这些内联 block div 元素之间存在无法解释的间隙?

java - FitViewport 中的 LibGDX 背景图像

java - 生成线程利用率摘要

java - 什么是 "Choose a number or apply filter (format: [groupId:]artifactId, case sensitive contains)"

macos - 许可证 key 验证框架(OS X、Cocoa)?

python - 无法为我的加密编码解密

java - 从 SQL 插入查询字符串中提取带引号的值

web-applications - window.crypto.getRandomValues() 的兼容性

java - 使用加密 key 解密文本

encryption - AES128 CBC 可以使用 0 填充吗?