計算實際檔案,而不是檔名
路徑含空格時使用引號。雙連字號表示選項結束,避免以連字號開頭的名稱被誤認為參數。指令讀取檔案位元組,不是檔名文字;僅重新命名一般不會改變內容摘要。
md5sum -- 'example.zip'
輸出通常同時含摘要與檔名標記。瀏覽器預期值欄位只需要其中 32 個十六進位字元。md5sum 清單有專門格式,不能整行當成單一摘要貼上,也不要省略前導零或尾端字元。
核對可信校驗清單
先確認清單來源與列出的路徑,從符合這些相對路徑的目錄執行檢查。清單能被讀取,不表示它來自真正的發布者;檔案與參考值的可信來源仍需另外核對。
md5sum --check checksums.md5
請閱讀全部診斷與結束狀態。找不到檔案、沒有讀取權限,與已讀完但摘要不同,是不同問題。成功只表示計算結果與清單一致,不表示掃描過病毒,也不驗證清單發布者身分。
重現不含結尾換行的 abc
printf 能明確輸出所需位元組,不附加 echo 常見的結尾換行。不同 shell 的 echo 選項與跳脫行為可能不同,因此 printf 更適合作為可控範例。
printf '%s' 'abc' | md5sum
預期值為 900150983cd24fb0d6963f7d28e17f72。若 abc 後還有換行,得到不同值是正常的。文字模式保留輸入;驗證磁碟上的實際檔案時,應使用檔案模式,避免編輯或複製過程改變位元組。
逐行批次不是檔案清單校驗
計算整個文字檔案,與每行分別計算並不相同。瀏覽器逐行模式將換行用作記錄分隔,保留原始行號,允許明確包含空白行。清單則把已產生的摘要對應到路徑。下載的 CSV 有自己的引號規則,不能直接作為 md5sum 清單。
遇到特殊檔名時,保留工具產生的格式,不要憑畫面自行重組。發布者提供 SHA-256 時,使用 sha256sum 與對應參考值;演算法變更不只是顯示長度變化。
留下可複核的記錄
記錄完整摘要、演算法、版本與參考來源。MD5 可用於舊系統相容性與意外變更排查,但不適用於要求抗碰撞的安全設計。計算準確與來源可信,是必須分開判斷的兩件事。