MD5 與 SHA-256:長度、相容性與信任邊界

比較摘要的實際用途,了解為何校驗相符不等於檔案安全或發布者可信。

先遵循協定,不是先挑最長結果

對方提供 MD5,就計算 MD5,不能拿 SHA-256 比較。自行設計新的通用指紋流程時,SHA-256 通常比 MD5 合適,但一般摘要仍不是身分驗證機制。儲存時必須同時保留演算法名稱。

比較項目MD5SHA-256
摘要長度128 位元256 位元
完整十六進位32 個字元64 個字元
一般摘要包含金鑰嗎不包含不包含
可作為可逆加密嗎不可不可

相符究竟代表什麼

兩個相同結果表示目前輸入與計算規則下的數值一致,無法說明誰提供了檔案。如果檔案與參考摘要都來自同一條被控制的管道,攻擊者可同時替換兩者。需要發布者真實性時,應使用可信管道及對應數位簽章驗證流程。

MD5 的碰撞弱點在對手刻意構造不同內容時尤其重要。「平常檢查複製檔案可用」不是把 MD5 引入新簽章格式的理由。不過,為歷史介面重現既定 MD5,仍可是一項明確且正當的相容性工作。

先比較相同位元組

abc、abc 加換行、含 UTF-8 位元組順序記號的檔案,是不同輸入。解壓目錄也不是壓縮檔原始位元組。重新命名通常不影響摘要,重新建置或壓縮卻可能改變中繼資料。

首頁單筆文字同時顯示 MD5、SHA-256、SHA-512;標籤用來區分演算法,應依標籤選擇要核對的結果。核對檔案時選擇發布者指定演算法,並比較完整值,不要只看前幾個字元。

訊息驗證與密碼是不同工作

共享金鑰驗證應使用 HMAC 等明確定義的構造,不是臨時把金鑰與訊息串接。密碼儲存需要專用設計及適當參數,不是改用較長的快速摘要就算完成。校驗工具也不是防毒軟體、簽章驗證器或復原服務。

提供可用的核對資訊

記錄演算法、完整結果與檔案版本。可信參考應與尚未驗證的檔案分開管理。本機匯出可保留識別碼與計算值,不預設包含私密原文或金鑰。不相符時先排查參考來源與版本,再決定是否重新下載或聯絡發布者。

相關工具與指南

RFC 6151

常見問題

SHA-256 結果可以和 MD5 參考值比對嗎?

不可以。MD5 為 32 個十六進位字元,SHA-256 為 64 個。應使用參考值指定的演算法重新計算,不能以截斷或補齊的方式互相轉換。

改用 SHA-256 就能驗證發布者身分嗎?

不能。一般摘要沒有金鑰或數位簽章。應從可信管道取得參考值,需要驗證來源時請遵循發布者的簽章驗證流程。

其他雜湊與校驗工具