透過 MCP 連接 →

輸入計算

數學公式

廣告

結果

MD5 雜湊值(128 位元)
d41d8cd98f00b204e9800998ecf8427e
32 個十六進位字元
輸入長度(字元數) 0
輸入大小(UTF-8 位元組) 0

什麼是 MD5 雜湊計算器?

MD5 雜湊計算器能針對你輸入的任何文字,計算出 128 位元的 MD5 訊息摘要。MD5(訊息摘要演算法第 5 版,定義於 RFC 1321)可接收任意長度的輸入,並產生固定的 32 字元十六進位「指紋」。相同的輸入永遠得到相同的雜湊值,但只要更動一個字元,結果就會完全不同。

使用方式

在輸入框中鍵入或貼上你的文字,再按下送出。計算器會先將文字編碼為 UTF-8 位元組,套用 MD5 演算法,再回傳小寫的十六進位摘要,同時顯示輸入的字元數與 UTF-8 位元組大小。若將輸入框留空,便會看到眾所周知的空字串雜湊值。

公式說明

MD5 採用 Merkle–Damgård 結構。$$\text{MD5}\!\left(\text{Text}\right) = \text{Hex}_{128}\big(A \Vert B \Vert C \Vert D\big)$$訊息會先補上一個 0x80 位元組,接著補零,直到長度為 56 mod 64 位元組,最後再以 64 位元小端序(little-endian)格式附上原始的位元長度。補齊後的訊息會切割成 512 位元的區塊,每個區塊在四個回合中經過 64 次運算處理,使用非線性函式、由 sin 推導出的每步常數以及左旋轉。四個 32 位元的狀態字組(A、B、C、D)以固定種子值初始化,並針對每個區塊更新;最終以小端序串接而成的結果即為摘要。

Flow diagram of MD5 processing message blocks into a 128-bit digest
MD5 pads the message and processes 512-bit blocks through four rounds to update state words A, B, C, D.

實際範例

空字串("")的位元組數為零。補齊後會成為單一的 512 位元區塊,MD5 回傳 d41d8cd98f00b204e9800998ecf8427e。文字「hello」(5 位元組)的雜湊值則為 5d41402abc4b2a76b9719d911017c592

Diagram showing four 32-bit words concatenated and reordered little-endian into a 32-character hex digest
The four 32-bit registers are concatenated and output in little-endian byte order as a 32-character hexadecimal string.

常見問題

MD5 安全嗎?並不安全。MD5 在密碼學上已被攻破——碰撞(collision)可以輕易產生。它只適合用於檢查碼與非安全性質的指紋比對,請勿用於密碼或數位簽章。

為什麼位元組數和字元數不一樣?非 ASCII 字元在 UTF-8 中會佔用超過一個位元組,因此一個由 3 個字元組成的表情符號字串,可能佔用好幾個位元組。

大小寫會影響結果嗎?會。「Hello」與「hello」會產生完全不同的雜湊值。

最後更新: