3DES(Triple Data Encryption Algorithm),即三重数据加密算法,是 DES 加密算法的一种改进模式。它通过使用三个不同的密钥对每个数据块应用三次 DES 加密算法,从而极大地增强了抗暴力破解的能力。
为了确保加解密结果与您的代码(如 Java, C#, PHP, Python)保持一致,请正确配置以下参数:
| 参数名称 | 选项/说明 | 开发规范 |
|---|---|---|
| 加密模式 (Mode) | CBC, ECB, CFB, OFB | CBC 为金融行业标准模式;ECB 适用于简单数据。 |
| 密钥 (Key) | 24 个字符 / 192 位 | 3DES 密钥长度必须为 24 字节。 |
| 偏移量 (IV) | 8 个字符 / 64 位 | 仅在 CBC 等模式下需要,增加密文的随机性。 |
| 填充 (Padding) | PKCS7, ZeroPadding | PKCS7 与大多数编程语言的默认填充兼容。 |
| 输出编码 | Base64, Hex | 推荐使用 Base64 格式,便于在 JSON 或 URL 中传输。 |
根据使用的独立密钥数量,3DES 分为三种常见模式:
Q:为什么 3DES 的密钥必须是 24 字节?
A: 3DES 内部执行三次 DES 运算,每次运算需要 8 字节密钥,因此总长度为 $8 \times 3 = 24$ 字节。如果您的密钥不足 24 字节,本工具会自动进行末尾补齐。
Q:3DES 和 AES 哪个更好?
A: AES 是现代的首选。 虽然 3DES 比 DES 安全,但其加密效率(速度)较低。如果不是为了兼容老旧设备或银行接口,建议优先使用本站的 [AES 加密工具]。
Q:解密时提示“数据块长度错误”?
A: 请检查您的填充方式(Padding)。如果加密时使用了 PKCS7 但解密时选了 NoPadding,会导致最后几个字节无法正确还原。
DESede 和 .NET 的 TripleDESCryptoServiceProvider 实现逻辑,助力开发者快速排查联调问题。3DES更详细的知识: DES 深度解析:结构、原理与安全性全面剖析