什麼是 MD5:原始位元組、128 位元摘要與常見誤解

讀懂 32 個十六進位字元的 MD5,用可重現範例了解雜湊為何不是加密。

位元組的指紋,不是可讀的內容摘要

MD5 是 Message-Digest Algorithm 5 的縮寫,將位元組輸入映射成固定 128 位元結果。一個十六進位字元代表 4 位元,因此完整結果通常有 32 個字元。輸出長度不隨檔案變長,也不包含可逆還原原文的編碼。

文件中的可見文字,不一定是儲存檔案的全部位元組。檔案可能含標頭、圖片、中繼資料與位元組順序記號。要識別這個實際檔案,應計算原始位元組;測試字串則先確定字元編碼。本工具使用 UTF-8,不自動移除空格或轉換換行。

重現一個小範例

輸入 abc,不含引號或結尾換行。MD5 應為:

900150983cd24fb0d6963f7d28e17f72

接著加一個空格再產生,結果改變是正常的。清空編輯器後主動按產生,會計算空字串,其 MD5 為 d41d8cd98f00b204e9800998ecf8427e。初始等待狀態不代表已算過空字串;這個區分能避免把「沒操作」誤認為「空輸入結果」。

確定性不表示絕對唯一

相同位元組總會得到相同摘要,但固定 128 位元輸出不能唯一對應所有可能輸入,不同輸入可能碰撞。MD5 還存在實際碰撞攻擊,因此不應支撐現代數位簽章,或承諾內容無法被刻意改變。

參考值合適時,相符結果可協助排查意外變化,但不證明檔案無害、發布者真實或來源安全。請把來源信任與數值相等分開判斷,不因綠色提示就忽略下載管道。

雜湊、加密與猜測

加密的設計目標是讓持有金鑰者還原資料,MD5 並不是這類可逆操作。字典工具可嘗試候選輸入並辨識熟悉結果,但這不叫「MD5 解密」。本站不提供密碼破解、字典查詢或明文復原服務。

快速且未加鹽的 MD5 也不是安全的密碼儲存設計。不要只為觀察摘要而輸入真實帳戶密碼或其他敏感資訊。HMAC 用於共享金鑰的訊息驗證測試,同樣不是加密,也不會隱藏訊息。

保存完整結果

十六進位字母大小寫表示相同位元組;內部空格、遺失前導零或少掉一段尾端,都會影響核對。下載記錄或向別人提供校驗值時,應同時保留演算法與完整結果,不要只傳截斷的螢幕截圖。

相關工具與指南

RFC 6151

常見問題

MD5 是 128 位元,為什麼顯示成 32 個字元?

每個十六進位字元代表 4 位元,32 個字元共同表示完整的 128 位元摘要。不能因為開頭是零就省略。

MD5 可以解密嗎?

不可以。MD5 是單向摘要,不是可逆加密。嘗試候選輸入屬於另一項工作,本網站不提供這類密碼猜測或所謂解密功能。

其他雜湊與校驗工具