簡要結論
使用檔案發布者提供的演算法,因為比較時必須使用相同演算法。對於新工作,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 簽章驗證自身更新。