DES 加密與解密
以單重 DES 解密或加密舊有資料。
以今日的標準來看,DES 並不安全——請只用它讀取舊資料;新資料請使用 AES 或 ChaCha20。 前往 AES
解密時還需要它。輸入的任何內容都不會離開這個頁面。
OpenSSL 的預設值是 10,000。任何次數都可以:次數越多,密碼越難猜;解密時需要相同的次數。
OpenSSL 最常用的選擇。需要 IV;會填充成完整區塊。
openssl enc -des-cbc -pbkdf2 -iter 10000 -a -A -provider legacy -provider defaultOpenSSL 會詢問密碼;把文字貼進去,或加上 -in 與 -out 檔案。
DES 是 1977 年的資料加密標準(Data Encryption Standard),以 64 位元金鑰加密 8 位元組的區塊,其中只有 56 位元有效,其餘 8 位元是同位位元。它早已能被暴力破解,但舊檔案、設定與資料庫中仍存有以 DES 加密的值,本頁可以讀寫這些資料:預設為 CBC 模式,也可選 ECB、CFB、OFB 或 CTR,並使用 openssl enc -pbkdf2 格式的密碼,或 16 位數的十六進位金鑰與 IV。請用它救回舊資料,再以 AES 重新加密。全部在瀏覽器中執行:資料與金鑰都不會離開你的裝置,而且免費、免註冊。
如何解密以 DES 加密的文字
- 選擇「解密」並貼上 Base64 或十六進位文字——格式會自動偵測——或選擇「加密」並輸入文字。
- 輸入密碼,或切換到「金鑰與 IV(hex)」,輸入 16 位數的金鑰與 16 位數的 IV(ECB 沒有 IV)。
- 選擇資料當初使用的模式——通常是 CBC 或 ECB。只有在資料加密時沒有使用 PKCS#7 填充的情況下,才開啟「不填充」。
- 複製或下載結果;不是文字的位元組會以十六進位顯示。
功能
- 使用 64 位元金鑰的單重 DES:56 個金鑰位元加上 8 個同位位元
- CBC、ECB、CFB、OFB 與 CTR 模式;PKCS#7 填充或不填充
- openssl enc -pbkdf2 格式的密碼模式,可設定任意 PBKDF2 迭代次數
- 金鑰與 IV 模式:16 位數的十六進位金鑰與 IV,可自行輸入或產生
- 執行相同操作的 openssl 指令,搭配 OpenSSL 3 的舊版提供者
- 自動偵測 Base64 或十六進位輸入;不是文字的結果以十六進位顯示,並可下載為位元組
隱私安全嗎?
是的。DES 在瀏覽器內以 WebAssembly 執行,所以你解密的舊資料及其金鑰或密碼絕不會上傳或儲存到任何地方。
常見問題
DES 加密安全嗎?
不安全。56 位元金鑰可以透過嘗試所有可能性找出來:1998 年就有專用機器做到了,如今成本更是低得多。DES 只適合用來讀取已經以 DES 加密的資料,讀取後請用 AES 或 ChaCha20 重新加密。
為什麼 OpenSSL 顯示「Error setting cipher DES-CBC」?
因為 OpenSSL 3 把 DES 移到了預設不會載入的舊版提供者(legacy provider)。請加上它:echo 'U2FsdGVkX1…' | openssl enc -d -des-cbc -pbkdf2 -iter 10000 -a -A -provider legacy -provider default。其他模式請用 -des-ecb、-des-cfb 或 -des-ofb(OpenSSL 沒有 DES CTR);在金鑰與 IV 模式中,請以 -K <16 位十六進位數> -iv <16 位十六進位數> 取代 -pbkdf2 -iter。
DES 金鑰長什麼樣子?
8 個位元組,寫成 16 位十六進位數。每個位元組的最低位元是 DES 會忽略的同位位元,所以只有這些位元不同的金鑰,解密結果完全相同。IV 也是 8 個位元組;ECB 不使用 IV。在密碼模式中,兩者都由密碼推導,不需要另外準備。
DES 和 Triple DES 有什麼不同?
Triple DES 以三把金鑰執行三次 DES——192 位元的金鑰,實際強度約 112 位元——這正是它比 DES 更長壽的原因。單重 DES 只有一把 56 位元金鑰,可以被暴力破解。如果你的金鑰長 16 或 24 個位元組,那份資料就是 Triple DES:請使用 Triple DES 頁面。
為什麼得到無法閱讀的文字?
因為有一項設定與加密時不同:密碼或金鑰、迭代次數、模式或填充。在 CFB、OFB 與 CTR 模式中,DES 無法偵測不一致,會傳回隨機位元組,頁面會以十六進位顯示;在 CBC 與 ECB 模式中,不一致通常會以錯誤結束。