如何用 Checksum 驗證檔案完整性?

什麼是 Checksum?

Checksum(校驗和)就是用雜湊函數對整個檔案計算出來的那串固定長度的值。因為雜湊具有「確定性」與「雪崩效應」——同一個檔案永遠算出同樣的值,而檔案只要被改動一個位元組,結果就會徹底不同——所以這串值可以當成檔案的數位指紋。

軟體發行者通常會在下載頁面附上官方的 checksum(最常見是 SHA-256)。你下載完檔案後,自己算一次 checksum 跟官方比對:相同代表檔案完整無誤;不同代表檔案在傳輸中損壞,或被人動過手腳。

為什麼要驗證檔案?

驗證 checksum 主要防範兩種情況:

對於作業系統映像檔、開發工具、加密貨幣錢包這類重要軟體,驗證 checksum 是值得養成的習慣。

小提示:要防範惡意竄改,請確認官方 checksum 不是和檔案放在同一個被攻陷的伺服器上。最好從官方主站、簽署過的公告或多個來源交叉確認該 checksum 本身是真的。

驗證的基本流程

  1. 下載檔案。
  2. 在官方頁面找到對應的 checksum 值,並確認用的是哪種演算法(MD5、SHA-1 還是 SHA-256)。
  3. 用工具或指令對下載的檔案計算同一種演算法的 checksum。
  4. 比對兩串值。雜湊比對不分大小寫,只要字元順序一致即可。
  5. 相同就放心使用;不同就重新下載,或換一個下載來源。

Windows 怎麼算

Windows 內建 certutil 指令,不需安裝任何軟體。開啟命令提示字元或 PowerShell,輸入:

certutil -hashfile C:\path\to\file.iso SHA256

SHA256 換成 MD5SHA1 就能算其他演算法。若你慣用 PowerShell,也可以用更直覺的 Get-FileHash

Get-FileHash C:\path\to\file.iso -Algorithm SHA256

macOS 怎麼算

macOS 內建相關指令,打開「終端機」即可使用。計算 SHA-256:

shasum -a 256 /path/to/file.iso

-a 後面可以接 1(SHA-1)、256(SHA-256)或 512(SHA-512)。要算 MD5 則用另一個指令:

md5 /path/to/file.iso

Linux 怎麼算

多數 Linux 發行版都內建這些工具,每種演算法各有對應指令:

md5sum    file.iso
sha1sum   file.iso
sha256sum file.iso
sha512sum file.iso

如果官方提供了 SHA256SUMS 這種校驗檔,可以讓系統自動比對,相符會顯示 OK:

sha256sum -c SHA256SUMS

各系統指令速查

系統SHA-256 指令
Windowscertutil -hashfile 檔案 SHA256
macOSshasum -a 256 檔案
Linuxsha256sum 檔案

用本工具更省事

如果不想記指令,或想直接在瀏覽器裡完成驗證,可以用本站的雜湊值產生器:

  1. 切到「檔案雜湊」分頁,把下載的檔案拖進去(或點擊選擇)。
  2. 勾選官方使用的演算法,按下計算,就會得到該檔案的 checksum。
  3. 把官方公布的 checksum 貼進「比對雜湊值」欄位,工具會即時告訴你相符與否,不必逐字比對 64 個字元。

所有計算都在你的瀏覽器本地完成,檔案不會上傳到任何伺服器,大檔案也能安心處理。

小提示:手動逐字比對長雜湊值很容易看走眼。善用工具的比對功能,貼上後讓它判斷相符或不符,既快又不會出錯。

注意事項

立即使用雜湊值產生器