> 雜湊 | 校驗和 | 驗證 <
// 用於校驗和、資料完整性驗證和指紋辨識的MD5雜湊產生器
本地處理
100%用戶端MD5雜湊處理。您的資料永遠不會離開瀏覽器。
即時雜湊
輸入時即時產生MD5雜湊。無需伺服器通訊。
多種格式
以十六進位或Base64格式輸出。可即時切換格式。
// 關於MD5雜湊
MD5運作原理:
MD5(訊息摘要演算法5)透過Merkle-Damgard結構的一系列位元運算處理輸入資料。它產生128位元(16位元組)的雜湊值,通常表示為32個字元的十六進位字串。
範例:
"Hello" → 8b1a9953c4611296a827abf8c47804d7
常見用途:
- >檔案完整性驗證和校驗和
- >資料去重和指紋辨識
- >快取鍵產生
- >非安全相關的雜湊表索引
- >舊系統相容性
>> 常見問題
問:什麼是MD5雜湊?
答:MD5(訊息摘要演算法5)是一種廣泛使用的雜湊函數,可產生128位元的雜湊值。它接受任何輸入並產生固定大小的32個字元十六進位字串,通常用於校驗和及資料完整性驗證。
問:MD5對密碼安全嗎?
答:不安全,MD5不建議用於密碼雜湊或安全關鍵型應用。它容易受到碰撞攻擊和彩虹表攻擊。密碼請使用bcrypt、scrypt或Argon2,加密需求請使用SHA-256或SHA-3。
問:MD5雜湊可以被反轉嗎?
答:不可以,MD5是單向雜湊函數。從數學上來說,將MD5雜湊反轉還原為原始輸入是不可行的。但是,常見輸入可以透過查詢表找到,因此MD5不適合安全用途。
問:MD5還有什麼用途?
答:MD5在非安全相關用途中仍然有用,例如檔案完整性檢查、資料去重、快取鍵產生以及不需要碰撞抗性的校驗和驗證。
問:MD5與SHA-256相比如何?
答:MD5產生128位元雜湊(32個十六進位字元),而SHA-256產生256位元雜湊(64個十六進位字元)。SHA-256具有加密安全性和碰撞抗性,適用於MD5不適合的安全應用。
// 常見的 MD5 值
| 輸入 | MD5 |
|---|---|
| "" | d41d8cd98f00b204e9800998ecf8427e |
| abc | 900150983cd24fb0d6963f7d28e17f72 |
| hello | 5d41402abc4b2a76b9719d911017c592 |
| The quick brown fox jumps over the lazy dog | 9e107d9d372bb6826bd81d3542a419d6 |
// 計算檔案校驗和
Linux md5sum file.zip
macOS md5 file.zip
Windows certutil -hashfile file.zip MD5
PowerShell Get-FileHash file.zip -Algorithm MD5
OpenSSL openssl md5 file.zip
Python hashlib.md5(data).hexdigest()
Node.js crypto.createHash('md5').update(data).digest('hex')
>> 更多問題
問:如何用 MD5 檢查碼驗證檔案?
答:計算下載檔案的 MD5 雜湊(例如用 md5sum),與發布的值逐字元比對。一致代表檔案沒有意外損毀。MD5 無法防禦惡意竄改,此時請使用 SHA-256 或簽章。
問:為什麼 MD5 輸出總是 32 個十六進位字元?
答:MD5 一律輸出 128 位元。每個十六進位字元代表 4 位元,所以正好是 32 個字元,無論輸入是 1 位元組還是 1 GB。
問:儲存密碼時應該用什麼取代 MD5?
答:使用緩慢且加鹽的密碼雜湊,如 Argon2id、bcrypt、scrypt 或 PBKDF2。它們刻意增加運算成本,讓暴力破解代價高昂;而 MD5 這類快速雜湊每秒可計算數十億次。