MD5 線上加密(計算)

輸入文字或選擇檔案,立即得到 MD5 值,支援 16 位、32 位輸出與大小寫切換。所有計算均在瀏覽器本機完成,不上傳任何資料。
文字輸入
檔案上傳
拖曳檔案到此處,或點擊選擇檔案

支援任意檔案,最大 2 MB

輸出選項
說明:
1. 文字輸入與檔案上傳二選一,檔案上傳優先。
2. 文字為空時自動使用目前時間戳作為輸入。
3. 檔案大小限制 2 MB,超過則顯示錯誤。
4. MD5 是單向雜湊演算法(中文習慣稱"加密"),無法解密,也不應再用於安全相關場景。

關於 MD5 加密與解密

MD5 算「加密」嗎?

嚴格來說不算。加密是可逆的:有金鑰就能還原出原文。MD5 是單向雜湊函數,把任意長度的輸入壓縮成固定的 128 位摘要,這個過程會遺失資訊,本身就不存在「還原」這一步。中文習慣把它叫作「MD5 加密」,本頁沿用這個說法,指的其實是計算 MD5 值。

順帶分清一個常被混淆的東西:Base64 既不是加密也不是雜湊,而是編碼,完全可逆、人人可還原,作用是讓二進位資料能在只允許文字的地方傳輸。看到有人拿它「加密」密碼,那是個安全問題。

MD5 能解密嗎?

不能。任何聲稱能「MD5 解密」的網站,做的都是彩虹表反查:事先把海量常見密碼(123456、admin、常見英文單字、手機號碼段等)算出 MD5 存進資料庫,你輸入一個雜湊值,它去資料庫裡查有沒有對應記錄。查得到,是因為你的原文恰好是個常見字串;查不到,就什麼也做不了。

所以結論很實際:一段隨機的長密碼,或者加了鹽(salt)之後的密碼,任何「解密站」都查不出來。反過來,如果你的密碼能被這類網站秒查出來,說明它本來就在公開字典裡,應該立刻更換。

那 MD5 現在還能用在哪?

可以繼續用於完整性驗證:下載檔案後算一次 MD5,和發布方給出的值比對,確認傳輸過程沒有損壞。也常用於產生快取鍵、去重識別碼這類不涉及安全的場景。

不應該再用於任何安全用途。MD5 的碰撞攻擊早已實用化,建構兩個 MD5 相同但內容不同的檔案只需要普通電腦幾秒鐘,因此它不能用來防竄改或做數位簽章。儲存使用者密碼請使用 bcrypt、scrypt 或 Argon2 這類專門的慢雜湊演算法,它們內建加鹽並且可以調節計算成本。

16 位和 32 位怎麼選?

32 位是完整的 MD5 值(128 位二進位的十六進位寫法),需要和別人比對時用它。16 位是從 32 位裡擷取中間一段的習慣做法,只是子字串、不是另一種演算法,位數變少意味著碰撞機率上升,僅適合對長度有限制的顯示場景。

常見問題

MD5 和 SHA、SHA-256 有什麼區別?

MD5 產生 128 位(16 位元組)雜湊值,SHA-1 產生 160 位,SHA-256 產生 256 位。位數越高,理論上抗碰撞能力越強。MD5 和 SHA-1 均已被攻破,不適用於安全場景;SHA-256 目前仍是主流安全雜湊演算法,可以用本站的 SHA256 線上加密計算。

MD5 可以解密嗎?

不能。MD5 是單向雜湊函數,設計上就不可逆。所謂的"MD5 解密"網站是彩虹表反查,只對已被收錄的常見字串有效,隨機長密碼或加鹽後的密碼查不出來。上方「關於 MD5 加密與解密」一節有更詳細的說明。

為什麼檔案上傳有 2 MB 限制?

瀏覽器處理大檔案會佔用大量記憶體,且 MD5 通常用於小檔案或字串的完整性驗證。對於大檔案,建議改用 SHA-256 或系統內建的命令列工具。

16 位和 32 位 MD5 有什麼區別?

32 位 MD5 是完整的 MD5 雜湊值(128 位十六進位表示)。16 位 MD5 是 32 位的中間 16 位(從第 8 位到第 24 位)。16 位不是獨立的雜湊演算法,只是 32 位的子字串。