什麼是檔案校驗碼比對?

總和檢查碼比對會計算兩個檔案的檢查碼,也可以拿一個檔案跟你貼上的檢查碼比對,再告訴你是否相符。這是驗證下載檔案有沒有損毀或被竄改的標準做法。檔案在本機完成雜湊運算,不會離開你的裝置。

兩種模式:檔案對檔案,或檔案對你貼上的校驗值。貼進來的內容幾乎什麼格式都認,純雜湊、帶檔名的 sha256sum 行、BSD 風格的 SHA256 (file) = 寫法都可以,演算法則依雜湊長度自動判斷。檔案最大 2 GB,計算過程有進度條。

使用方法

  1. 放入第一個檔案,或從下載頁面貼上預期的檢查碼字串。
  2. 放入第二個檔案,再選擇演算法:MD5、SHA-1、SHA-256、SHA-384 或 SHA-512。
  3. 看結果:綠色「相符」代表兩個檔案完全一致,不相符時會指出雜湊值差在哪裡。

何時使用

  • 核對下載好的 ISO 或安裝檔,和發行頁上的雜湊是否一致。
  • 確認檔案經過隨身碟、FTP 或不穩定的網路磁碟後仍然完整。
  • 驗證同一個資料夾的兩份備份內容依然完全相同。

結果

下載完一份 Linux ISO 後,把發行版官網的 SHA-256 字串貼進來,再放入下載好的 ISO,得到綠色的「相符」——證明這 3 GB 檔案完整無缺。

常見問題

校驗值對不上,是不是代表檔案被人動過手腳?
多數情況是下載被截斷或損毀,這比遭到攻擊常見得多。重新下載再比一次。如果新抓的檔案和官方雜湊還是對不上,就別用了,換個鏡像站重抓。
貼上之前一定要知道發行方用的是哪種演算法嗎?
不用。32 位是 MD5,40 位是 SHA-1,64 位是 SHA-256,96 位是 SHA-384,128 位是 SHA-512,演算法會依你貼上的長度自動決定。發行方同時列出多種時也可以手動切換。
可以直接貼 SHASUMS 檔裡的一整行,而不只是雜湊嗎?
可以。標籤、星號、檔名和外圍括號都會被剝掉,被窄表格切成好幾行的雜湊也會接回去。剩下長度剛好的那串十六進位,就是用來比對的值。
用 MD5 或 SHA-1 檢查下載檔案是否完整,現在還夠用嗎?
只看是否意外損毀的話夠用,有些老鏡像也只公布這兩種,所以這裡都保留了。但要證明檔案沒被刻意掉包,請改用 SHA-256:MD5 的碰撞自 2008 年起就能便宜做出,SHA-1 的碰撞也自 2017 年起能實際做出來。
為什麼超過 2 GB 的映像檔就沒辦法比對?
摘要運算需要把整個檔案放進一整塊記憶體,而單次配置大致超不過 2 GB。更大的映像檔可以在命令列跑 sha256sum 或 certutil,再把結果貼進來比對。

相關工具