MD5 產生器
數位指紋機:生成單向不可逆的 128 位元雜湊值
什麼是 MD5?
MD5 (Message-Digest Algorithm 5) 是一種被廣泛使用的密碼雜湊函式。您可以把它想像成是資料的「數位指紋」。無論您輸入的是一個單字,還是一本百萬字的電子書,MD5 演算法都能將其運算並壓縮成一串 固定長度 (32個字元) 的十六進位字串。
雖然因為現代電腦運算能力提升,MD5 已不再被視為「加密安全」的標準(不建議用來存密碼),但因為它計算速度極快且普及率高,在 檔案驗證 與 資料索引 領域仍然是業界標準。
核心原理:雪崩效應 (Avalanche Effect)
雜湊演算法的一個重要特性是「不可逆」與「敏感」。
-
單向性: 您可以輕易將
Apple變成1f3870...,但無法從1f3870...反推出Apple。 -
雪崩效應: 只要輸入的內容改了一個字(例如
Apple變成apple),輸出的雜湊值就會產生天翻地覆的變化,完全看不出兩者有任何關聯。
常見的應用場景
1. 檔案完整性驗證 (Checksum)
這是 MD5 最常見的用途。當您從網路下載大型軟體或 ISO 映像檔時,官方通常會附上一組 MD5 碼。
-
下載完成後,您計算本機檔案的 MD5。
-
如果與官方提供的一模一樣,代表檔案在傳輸過程中沒有損壞或被駭客竄改。
2. Gravatar 頭像服務
WordPress 與 Github 使用的 Gravatar 頭像服務,就是利用 MD5 來識別用戶。
-
系統會將您的 Email (如
[email protected]) 轉成 MD5,然後去伺服器抓取對應的圖片。這能保護您的 Email 不被直接暴露在網頁原始碼中。
3. 資料庫唯一標識 (Unique ID)
當您需要為長篇文章或檔案產生一個簡短的 ID 以便存入資料庫索引時,MD5 是一個很好的選擇,因為它保證了同樣的內容永遠會產生同樣的 ID。
常見問題 (People Also Ask)
Q1:MD5 可以解密 (Decrypt) 嗎?
理論上不行,但實務上「有風險」。
-
MD5 是雜湊 (Hash),不是加密 (Encryption),所以沒有「解密金鑰」。
-
但對於簡單的密碼(如 "123456"),駭客可以使用 「彩虹表 (Rainbow Table)」 —— 一張紀錄了數億組常見密碼對應 MD5 的大表,透過「查表」來反推您的原始內容。
Q2:還可以用 MD5 來存密碼嗎?
強烈不建議。
-
如上所述,MD5 抗碰撞能力已不足,且容易被暴力破解。
-
現代系統請使用 Bcrypt、Argon2 或 SHA-256 (加鹽) 來儲存用戶密碼。
Q3:什麼是「雜湊碰撞 (Collision)」?
這指的是「兩個不同的輸入,剛好產生了一模一樣的 MD5 值」。
-
雖然機率極低,但已被證實是可能的。
-
這也是為什麼涉及高度資安(如數位簽章、SSL 憑證)的領域已經淘汰 MD5,改用 SHA-2 家族的原因。
Q4:輸出的格式為什麼有的英文是大寫,有的是小寫?
兩者是一樣的。
-
MD5 本質上是 128 位元的二進位數據,通常以十六進位 (Hex) 表示。
-
1F38...和1f38...代表同一個數值,您可以依據需求自行轉換大小寫。