MD5 哈希生成器

在浏览器中即时生成任意文本的 MD5 哈希值。支持 UTF-8、十六进制或 Base64 输入,输出十六进制或 Base64。免费、私密,无需上传。

MD5 在密码学上已被攻破(可以构造碰撞)。仅可用于校验和或兼容旧系统,不要用于安全用途。
MD5

完全在浏览器中运行,您的数据不会被上传。

什么是 MD5 哈希生成器?

MD5 是 RFC 1321 定义的 128 位哈希,至今仍广泛用于校验和、缓存键和去重。本工具会在你输入时实时计算文本或原始字节(十六进制或 Base64)的 128 位 MD5 摘要,并以 32 个十六进制字符或 Base64 显示。

如何使用 MD5 哈希生成器

  1. 在 要计算哈希的文本 中输入或粘贴内容——摘要会随输入实时更新(输入框为空时显示空输入的哈希值)。
  2. 选择 输入编码:文本 (UTF-8) 会把字符按 UTF-8 计算哈希,十六进制字节 或 Base64 则对解码后的原始字节计算哈希。
  3. 选择 输出格式(十六进制小写、十六进制大写或 Base64),然后点击 复制。

示例

输入
abc
输出
900150983cd24fb0d6963f7d28e17f72

3 个 ASCII 字节“abc”的 MD5(UTF-8,十六进制小写输出),即标准测试向量。

何时使用 MD5 哈希生成器

MD5 文本工具适合对字符串计算哈希:复现文档或代码中的值、构造测试向量、比对 API 签名的输入,或检查程序应输出的结果。不要用它来防范攻击者——它在密码学上已被攻破。也不要用它校验下载的文件:把文件内容复制到文本框会改变换行符和编码,请使用 MD5 文件校验工具。如果数据可能由攻击者提供,请改用 SHA-256。

MD5 哈希生成器 的工作原理

MD5 先把消息填充为 512 位的整数倍(一个 1 比特、若干 0,再加 64 位小端序长度),然后让每个分组在四个 32 位字上经过四轮、每轮 16 步的运算。每一步都会混入一个消息字、一个由正弦函数派生的常数和一次循环移位。最终状态按小端序写出,就是 128 位(32 个十六进制字符)的摘要。文本会先转换为字节(默认 UTF-8),因此相同的字符总会得到相同的哈希值。

常见用例

  • 在单元测试或测试数据中核对字符串的预期 MD5
  • 对从调试器、抓包结果或协议规范中复制的十六进制字节计算哈希
  • 比较两种编程语言之间结果不一致的 MD5 输出
  • 从文本生成确定性的标识符或缓存键
  • 复现旧系统中保存的历史 MD5 值

安全提示

MD5 在安全方面已被攻破。 实用的碰撞攻击已经存在(例如 2008 年伪造 CA 证书和 Flame 恶意软件),所以两个不同的文件可以拥有相同的 MD5。它仍可用于检测意外损坏,但不要用于签名、证书或密码——请改用 SHA-256 或 SHA-3。普通哈希也不适合存储密码:请使用 Argon2、scrypt 或 bcrypt 等慢速、加盐的密码哈希。所有计算都在你的浏览器本地完成,输入的内容不会发送到任何地方。

常见问题

MD5 哈希可以解密吗?

不能。哈希不是加密,没有什么可以“解密”。那些“反查”MD5 的网站只是在海量已计算过的字符串对照表里查找该哈希,这对短字符串或常见输入有效。

为什么两个工具对同一段文本给出的 MD5 不一样?

通常是因为字节不同:末尾换行符、Windows 换行符(CRLF)或不同的字符编码。本工具对输入框中内容的 UTF-8 字节计算哈希;选择十六进制或 Base64 输入时,则对原始字节计算。

为什么只改一个字符,哈希值就完全变了?

这就是每种密码学哈希都刻意追求的雪崩效应:输入翻转一个比特,128 位输出中大约一半会改变,因此相似的输入会得到毫不相关的摘要。

末尾的空格或换行符有影响吗?

有。哈希覆盖每一个字节,所以 abc 和后面跟着换行符的 abc 会得到不同的 MD5 值。请确保输入中恰好是你想计算哈希的那些字节。

探索更多分类