MD5 線上加密(檔案 / 圖片)

拖進一個檔案(圖片、PDF、壓縮檔、安裝檔都行)或輸入文字,立即得到 MD5 值,不限檔案大小。可以貼上對方提供的雜湊自動比對,確認檔案沒被改過。支援 16 位、32 位輸出與大小寫切換,所有計算都在瀏覽器本機完成,不上傳任何資料。
文字輸入
檔案上傳
拖曳檔案到此處,或點擊選擇檔案

圖片、PDF、壓縮檔、安裝檔都可以,不限大小

輸出選項
比對校驗
說明:
1. 文字輸入與檔案上傳二選一,檔案上傳優先。
2. 文字為空時自動使用目前時間戳作為輸入。
3. 檔案不限大小,分片讀取逐塊計算,好幾 GB 的檔案也能算,進度顯示在按鈕上。
4. 比對校驗欄可以直接貼上 md5sum 那種「雜湊 + 空格 + 檔名」的整行,會自動只取雜湊部分;對方給的是 16 位寫法也認。
5. 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 加密與解密」一節有更詳細的說明。

怎麼算一張圖片的 MD5 值?

把圖片直接拖進上面的上傳框,按「計算 MD5」就行,JPG、PNG、GIF、WebP、HEIC 都一樣 —— MD5 算的是檔案的位元組,不認識裡面是什麼內容,所以不需要按格式區分。也正因為算的是位元組,看起來一模一樣的兩張圖 MD5 可以完全不同:重新儲存一次、改一下壓縮品質、甚至只是被 WeChat 或 QQ 轉發過一輪(它們會重新編碼並壓縮),位元組就變了,MD5 跟著變。想確認兩張圖是不是同一個檔案,比 MD5 是準的;想確認「畫面是否相同」,MD5 幫不上忙。

PDF、安裝檔這類大檔案的 MD5 怎麼算?

和圖片一樣,拖進來即可,沒有大小限制。本頁把檔案切成 4 MB 一片逐塊餵給雜湊演算法,全程只有一片在記憶體裡,所以好幾 GB 的 PDF、ISO、安裝檔都能算,進度會顯示在按鈕上。算大檔案需要幾秒到幾十秒,期間不要關頁面。

只要檔案位元組一致,在哪台電腦、用哪個工具算出來的 MD5 都必須一樣。和對方給的值不一致,說明的是這兩份檔案不同 —— 常見原因是下載沒完成、下到的是網頁而不是檔案,或者發布方換過一次檔案而校驗值沒更新。

怎麼用 MD5 校驗下載的檔案有沒有出錯?

把檔案拖進上傳框,在「比對校驗」欄貼上發布方提供的 MD5 值,按計算:一致會顯示綠色提示,不一致顯示紅色。這一欄可以直接貼上 md5sum 那種「雜湊 + 空格 + 檔名」的整行,也認 md5: 前綴和 16 位寫法,不用手工清理。如果你貼進來的值長度不像 MD5(比如 64 個字元),頁面會直接告訴你那多半是 SHA-256,該換到SHA256 線上加密那一頁去算。

檔案會被上傳到伺服器嗎?

不會。整個計算由瀏覽器用本機 JavaScript 完成,檔案既不上傳也不快取到任何伺服器,本站也沒有後端可以接收它。這一點對大檔案尤其實際 —— 算一個 3 GB 的安裝檔不需要先把 3 GB 傳出去。斷網之後本頁照樣能算,可以自己試。

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

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