三重 DES(3DES)加密與解密
以 Triple DES(DES-EDE3)加密與解密文字,適用於較舊的系統。
以今日的標準來看,Triple DES 並不安全——請只用它讀取舊資料;新資料請使用 AES 或 ChaCha20。 前往 AES
解密時還需要它。輸入的任何內容都不會離開這個頁面。
OpenSSL 的預設值是 10,000。任何次數都可以:次數越多,密碼越難猜;解密時需要相同的次數。
OpenSSL 最常用的選擇。需要 IV;會填充成完整區塊。
openssl enc -des-ede3-cbc -pbkdf2 -iter 10000 -a -AOpenSSL 會詢問密碼;把文字貼進去,或加上 -in 與 -out 檔案。
Triple DES(3DES、TDES、TDEA)會依「加密、解密、加密」的順序執行三次 DES,使用由三把 DES 金鑰組成的 192 位元金鑰。支付系統、較舊的資料庫與舊有的系統整合仍在使用它,所以本頁主要用來讀取它們的資料,或為它們產生資料。本頁以三金鑰 Triple DES(OpenSSL 的 des-ede3)加密與解密文字,預設為 CBC 模式,也可選 ECB、CFB、OFB 或 CTR,並使用 openssl enc -pbkdf2 格式的密碼,或你自己的 48 位數十六進位金鑰與 IV。新資料請使用 AES。全部在瀏覽器中進行:資料與金鑰都不會離開你的裝置,而且免費、免註冊。
如何解密或加密 Triple DES 文字
- 選擇「解密」並貼上 Base64 或十六進位文字——格式會自動偵測——或選擇「加密」並輸入文字。
- 輸入密碼,或切換到「金鑰與 IV(hex)」,輸入 48 位數的金鑰與 16 位數的 IV(ECB 沒有 IV)。
- 選擇資料當初使用的模式——通常是 CBC。只有在資料加密時沒有使用 PKCS#7 填充的情況下,才開啟「不填充」。
- 複製或下載結果。不是文字的結果會以十六進位顯示,並以位元組形式下載。
功能
- 三金鑰 Triple DES(DES-EDE3,192 位元金鑰);雙金鑰只要輸入成 K1 K2 K1 也能使用
- CBC、ECB、CFB、OFB 與 CTR 模式,可用 PKCS#7 填充或不填充
- 密碼模式可用 openssl enc -des-ede3-cbc -pbkdf2 讀取,不需要 OpenSSL 的舊版提供者(legacy provider)
- 金鑰與 IV 模式:48 位數的十六進位金鑰與 16 位數的 IV
- PBKDF2 迭代次數可配合資料設定:10,000、100,000、600,000 或其他任意次數
- Base64 或十六進位輸入與輸出;不是文字的結果以十六進位顯示,並存成位元組
- 對應的 openssl 指令,顯示時不含你的密碼或金鑰
隱私安全嗎?
是的。Triple DES 在瀏覽器中以 WebAssembly 執行。你解密的資料及其金鑰或密碼絕不會上傳或儲存,所以支付或銀行系統的紀錄會一直留在你的電腦上。
常見問題
Triple DES 還安全嗎?
對新資料來說不安全。它的 8 位元組區塊讓同一把金鑰加密大量資料時容易遭受攻擊(Sweet32 攻擊),NIST 也在 2023 年之後禁止以 Triple DES 進行加密。三金鑰形式仍有約 112 位元的安全強度,所以既有資料不會一夕之間被破解——但任何新資料都請用 AES 或 ChaCha20 加密。
可以用 OpenSSL 解密嗎?
可以,而且 Triple DES 不需要舊版提供者:echo 'U2FsdGVkX1…' | openssl enc -d -des-ede3-cbc -pbkdf2 -iter 10000 -a -A(OpenSSL 接著會詢問密碼)。ECB 用 -des-ede3,CFB 與 OFB 模式分別用 -des-ede3-cfb 與 -des-ede3-ofb;OpenSSL 沒有 Triple DES CTR。在金鑰與 IV 模式中,請以 -K <48 位十六進位數> -iv <16 位十六進位數> 取代 -pbkdf2 -iter。
我的金鑰只有 16 位元組,這是雙金鑰 Triple DES 嗎?
是的。本頁使用三金鑰 Triple DES,而雙金鑰 K1 K2 等同於三金鑰 K1 K2 K1:在金鑰與 IV 模式中,輸入你的 32 位十六進位數,後面再接上其中的前 16 位即可。
如何把 Triple DES 資料轉移到 AES?
在這裡用它的金鑰或密碼解密,複製文字,再到 AES 頁面重新加密——讀取端支援的話用 GCM 模式,使用 openssl enc 的話則用 CBC。兩個步驟都在瀏覽器中執行,所以明文在過程中絕不會傳送到任何地方。
為什麼解密失敗或得到無法閱讀的文字?
因為有一項設定與加密時不同:密碼或金鑰、迭代次數、模式或填充。密文中只儲存了鹽值,其他設定都無法偵測。在 CBC 與 ECB 中,不一致通常會以錯誤結束;CFB、OFB 與 CTR 無法分辨,所以會得到以十六進位顯示的隨機位元組。以原始金鑰而非密碼加密的資料,需要使用金鑰與 IV 模式。