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 深度解析:結構、原理與安全性全面剖析