CH-J Server Manager透過 SSH 管理伺服器
選單
所有指南與文章 →

SHA-256、SHA-512 與 BLAKE3:該用哪一種校驗和?

了解這三種演算法在安全性、速度與相容性上的差異、校驗和無法證明什麼,以及如何選擇。

簡要結論

使用檔案發布者提供的演算法,因為比較時必須使用相同演算法。對於新工作,SHA-256 的相容性最好,SHA-512 也是不錯的選擇。對於自己的大量資料,如果所有相關系統都有對應工具,BLAKE3 是速度最快的選擇。目前這三種演算法都被認為是安全的,均沒有已知的實用攻擊方法。

它們有何不同

SHA-256 和 SHA-512 屬於 NIST 標準化的 SHA-2 家族,法規遵循規則常會要求使用它們。BLAKE3 較新,並非 NIST 標準,因此可能不符合這類規則。SHA-256 和使用預設輸出的 BLAKE3 都產生 256 位元結果,相當於約 128 位元的抗碰撞強度。SHA-512 產生 512 位元結果,抗碰撞強度約為 256 位元。實務上,這兩種等級都遠超可行攻擊的能力範圍。

速度取決於硬體

BLAKE3 的設計可利用多個 CPU 核心及現代向量指令,因此處理大型檔案時通常明顯領先。兩種 SHA-2 演算法的表現則因硬體而異:在沒有專用指令的 64 位元 CPU 上,SHA-512 通常更快;具備 SHA 擴充指令的 CPU 則能加速 SHA-256。請在自己的機器上用大型檔案測量,因為快取和磁碟都會影響結果。b3sum 可能需要另外安裝。

time sha256sum large.iso
time sha512sum large.iso
time b3sum large.iso

校驗和能證明什麼

校驗和相符表示檔案與計算該摘要時使用的檔案完全相同,但無法說明檔案是誰製作的。如果攻擊者能同時修改下載檔案與同一頁面上的校驗和,比較仍然會通過。要驗證來源,需要從獨立的可信管道取得摘要,或使用 GPG 等簽章。

sha256sum -c SHA256SUMS
gpg --verify SHA256SUMS.asc SHA256SUMS

應避免什麼

MD5 和 SHA-1 的抗碰撞能力已遭破解,不應依靠它們防止惡意竄改。舊清單中可能仍會出現它們,但它們只能用來偵測意外損毀。CRC-32 和 xxHash 等非密碼學函數是為速度與意外錯誤偵測而設計,絕不能用於安全防護。

CH-J Server Manager 中的校驗和

Hash & Checksum 模組包含這三種演算法,將 SHA-256、SHA-512 和 BLAKE3 標為建議使用,將 MD5 和 SHA-1 標為已破解。它可以計算摘要、比較檔案及檢查預期值。模組無法判斷預期值本身是否可信,因此請從可信來源取得。應用程式會同時使用 SHA-512 和 OpenPGP 簽章驗證自身更新。

詳細文件

NIST FIPS 180-4 →

BLAKE3 specification →

生物辨識解除鎖定與安全性 →