雜湊值產生器
輸入文字或選擇檔案,即可並排取得 MD5、SHA-1、SHA-256、SHA-384 與 SHA-512 雜湊值,每個都有自己的複製按鈕。雜湊運算透過瀏覽器的 Web Crypto API 與本機 MD5 程式在您的裝置上執行,檔案完全不會上傳。
0 個字元 · 0 個字詞 · 0 行
- MD5不適用於安全用途
- —
- SHA-1不適用於安全用途
- —
- SHA-256
- —
- SHA-384
- —
- SHA-512
- —
0 個字元 · 0 個字詞 · 0 行
完全在此瀏覽器分頁中執行,您的文字不會被上傳或儲存。
摘要長度
長度與空輸入的摘要,是在建置本頁時以本頁自己的 MD5 與 Web Crypto API 計算的。
| 演算法 | 摘要位元數 | 十六進位長度 | 區塊位元數 | 狀態 | 空輸入的雜湊值 |
|---|---|---|---|---|---|
| MD5 | 128 | 32 | 512 | 已破解:2004 年發現碰撞 | d41d8cd98f00b204e9800998ecf8427e |
| SHA-1 | 160 | 40 | 512 | 已破解:2017 年展示碰撞 | da39a3ee5e6b4b0d3255bfef95601890afd80709 |
| SHA-256 | 256 | 64 | 512 | 安全(SHA-2) | e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 |
| SHA-384 | 384 | 96 | 1024 | 安全(SHA-2) | 38b060a751ac96384cd9327eb1b1e36a21fdb71114be07434c0cc7bf63f6e1da274edebfe76f65fbd51ad2f14898b95b |
| SHA-512 | 512 | 128 | 1024 | 安全(SHA-2) | cf83e1357eefb8bdf1542850d66d8007d620e4050b5715dc83f4a921d36ce9ce47d0d13c5d85f2b0ff8318d2877eec2f63b931bd47417a81a538327af927da3e |
五種演算法,其中兩種已不再安全
雜湊函數會把任意大小的輸入轉換成固定長度的「指紋」。只要改動一個字元,輸出約有一半的位元會翻轉,所以即使是 "UltKit" 與 "ultkit",產生的摘要也毫無關聯。MD5 由 Ron Rivest 於 1992 年在 RFC 1321 中發表,輸出 128 位元(32 個十六進位字元)。2004 年,王小雲等人證明可以構造出兩個不同的輸入,卻得到相同的 MD5 雜湊值;到了 2012 年,Flame 惡意程式利用 MD5 碰撞偽造了 Microsoft 的程式碼簽署憑證。SHA-1(160 位元)也步上後塵:2017 年 Google 與阿姆斯特丹 CWI 發表了第一個實際的碰撞 SHAttered。這兩者在此都標示為「不適用於安全用途」。
SHA-256、SHA-384 和 SHA-512 屬於 SHA-2 家族,由 NIST 在 FIPS 180-4 中制定,目前尚無已知的實用攻擊手法。SHA-256 是軟體下載、Git 較新的物件格式、TLS 憑證與比特幣的預設選擇。MD5 與 SHA-1 仍適用於沒有惡意對手的情境,例如發現意外損毀或檔案去重,這也是許多下載頁面仍列出它們的原因。
為什麼雜湊不等於加密
加密在設計上是可逆的:持有金鑰的人就能還原原始內容。雜湊沒有金鑰,也無法反推,因為有無數種輸入會對應到同一個摘要。但這不代表雜湊可以安全地保管機密。攻擊者看到短字串或常見輸入的 SHA-256 時,只要逐一雜湊候選內容直到吻合即可,而預先計算好的彩虹表更涵蓋了數十億個已知密碼。快速雜湊本來就是為了快而設計,現代 GPU 每秒可嘗試數十億次 SHA-256 猜測。
因此,儲存密碼請使用刻意設計得很慢、並加鹽的密碼雜湊,例如 Argon2、bcrypt 或 scrypt,切勿直接使用 MD5 或 SHA-256,密碼本身也建議用密碼產生器建立。本頁適合用在快速雜湊擅長的事:驗證下載的檔案是否與發佈者列出的檢查碼相符、不開啟檔案就比對兩個檔案,或檢查自己程式算出的摘要。文字會以 UTF-8 編碼、且不含結尾換行來計算雜湊,這通常就是結果與終端機中 echo "text" | sha256sum 不同的原因。開發者工具總覽頁則以同一份範例比較了雜湊與可逆編碼。
常見問題
- 如何用 SHA-256 檢查碼驗證下載的檔案?
- 用「雜湊檔案」選擇該檔案,再將 SHA-256 那一行與發佈者網站上的值比對。每個字元都必須一致;大寫十六進位只是改變 a 到 f 的顯示方式。
- MD5 或 SHA-256 雜湊值可以解密嗎?
- 不行,因為根本沒有可以解密的東西。宣稱能還原雜湊的網站,其實是在已雜湊過的字串對照表中查詢摘要,只對短字串或常見輸入有效。
- MD5 已被破解,為什麼還提供?
- 許多系統仍提供 MD5 檢查碼,用來偵測意外變動完全沒問題。它只有在面對能刻意構造碰撞檔案的攻擊者時才算被破解。
- 空字串的 MD5 雜湊值是什麼?
- d41d8cd98f00b204e9800998ecf8427e。看到這個值通常表示程式雜湊的是空內容,例如檔案在計算雜湊前就載入失敗。
- SHA-512 比 SHA-256 更安全嗎?
- 兩者都未被破解,且暴力破解遠遠不可行。SHA-512 的輸出較長,在 64 位元處理器上可能更快,但檢查碼與簽章較普遍預期使用的是 SHA-256。