通过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 结构。算法先在消息末尾追加一个 0x80 字节,再补零,直到长度满足"对 64 取模等于 56 字节"为止,最后以 64 位小端格式追加原始消息的位长度。补齐后的消息被切分为多个 512 位的数据块,每个块在四轮共 64 次运算中处理,过程中使用非线性函数、由 sin 推导出的每步常量以及循环左移。四个 32 位状态字(A、B、C、D)会被初始化为固定种子值,并随每个数据块不断更新;将它们最终以小端格式拼接起来,即为摘要结果。

$$\text{MD5}\!\left(\text{Text}\right) = \text{Hex}_{128}\big(A \Vert B \Vert C \Vert D\big)$$
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 在密码学上已被攻破——人们可以轻易构造出碰撞。它只适合用作校验和与非安全场景的指纹,切勿用于密码或数字签名。

为什么字节数和字符数不一样? 非 ASCII 字符在 UTF-8 中会占用多个字节,因此一个由 3 个字符组成的表情符号字符串,实际可能有好几个字节。

输入的大小写有影响吗? 有。"Hello" 和 "hello" 会生成完全不同的哈希值。

最后更新: