MD5 哈希 — 从文本生成 MD5 哈希值
从文本输入生成 MD5 哈希值。32 字符的十六进制摘要,全部在浏览器中完成——无需上传,无需与服务端往返。
MD5 Hash Generator
Generate MD5 hashes from text. Works entirely in your browser using Web Crypto API.
MD5 是最著名的已被攻破的密码学哈希函数。它由 Ron Rivest 在 1991 年设计,作为面向文件完整性校验和数字签名的快速 128 位摘要,曾在此角色上服役十年。2004 年,由王小云领导的团队演示了首次碰撞攻击:两个不同的 128 字节输入产生相同的 MD5 哈希。2007 年,Marc Stevens 等人演示了选择前缀碰撞,让攻击者能创建两份内容不同(例如两张不同的 SSL 证书)但 MD5 哈希相同的文档。从那时起,MD5 在任何安全敏感的应用中被禁用,Web 已转向 SHA-256。
尽管在安全上已被攻破,MD5 因一个理由延续至今:它快速、简单,并深植于遗留系统之中。缓存键去重、非安全的文件完整性校验,以及仍要求 MD5 摘要的遗留 API,是 2026 年它仅存的三个合法用例。任何新系统,最低限度可接受的哈希函数是 SHA-256。密码哈希方面,最低是 cost factor 为 12 或更高的 bcrypt,或采用推荐内存和迭代参数的 Argon2id。MD5 用于密码自至少 2010 年起就已不可接受。
MD5 哈希工具用 Web Crypto API 在浏览器中计算摘要——若浏览器不支持该 API,则退回纯 JavaScript 的快速实现——并立即显示 32 字符的十六进制摘要。对比功能让你并排粘贴两个哈希,检查两段文本是否一致。当文件内容很重要的完整性校验场景,请用本网站的 SHA-256 工具,它直接在浏览器中读取文件的字节,无需上传。
使用方法
输入你的文本
键入或粘贴要哈希的文本。哈希值在你键入时实时更新。想粘贴文件路径?本工具对文本做哈希,不对文件——文件完整性校验请用 SHA-256。
复制 MD5 摘要
32 字符的十六进制摘要立即出现,一键复制。输出默认是小写十六进制;如需大写输出,切换「uppercase」选项。
对比两个哈希
把第二个哈希粘贴到「compare」字段,检查两段文本是否生成相同的 MD5 摘要。对比不区分大小写,并会高亮匹配或不匹配的结果。
常见问题
为什么不应该把 MD5 用于密码?
MD5 在密码学上已被攻破,绝不能用于哈希密码。2004 年就演示了能产出两个不同输入却拥有相同 MD5 哈希的碰撞攻击,2007 年又演示了选择前缀碰撞。密码哈希请用 bcrypt、scrypt 或 Argon2id——绝不要用 MD5。
MD5 现在还有什么用?
MD5 仍被用于非安全场景的校验和:核对文件是否意外损坏(不是故意篡改)、缓存键去重,以及与仍要求 MD5 摘要的遗留系统保持兼容。安全敏感的完整性校验请用 SHA-256。
输出是什么格式?
输出是 32 字符的小写十六进制字符串。MD5 产出 128 位(16 字节)的摘要,对应 32 个十六进制字符。需大写输出可在输出选项里切换「uppercase」。
能哈希文件吗?
不能。本工具只对你粘贴的文本字符串做哈希。文件哈希请用本网站的 SHA-256 工具,它直接在浏览器中读取文件的字节并哈希,无需上传——或者用操作系统的内置工具(macOS 用 `md5`,Windows 用 `CertUtil`,Linux 用 `md5sum`)。
「碰撞攻击」是什么意思?
碰撞是两个不同输入产生相同 MD5 哈希的情况。碰撞攻击是一种比随机猜测更快地故意寻找这种配对的方法。MD5 的抗碰撞性在 2004 年被王小云等人攻破,自此完全失效。这就是 MD5 只能用于遗留校验和、不能用于任何安全场景的原因。
限制说明
- 不可用于密码学安全MD5 的抗碰撞性已被攻破。切勿把 MD5 用于密码存储、数字签名、SSL 证书,或任何攻击者可能尝试寻找匹配给定哈希的第二个输入的场景。请用 SHA-256 或现代的密码哈希算法。
- 仅支持文本,不支持文件哈希哈希是对你粘贴的文本字符串计算的。文件哈希请用 SHA-256 工具,它直接在浏览器中读取文件字节。
- 不支持 HMAC-MD5HMAC(基于哈希的消息认证码)将密钥与哈希函数配合使用。本工具只计算裸的 MD5 摘要。带密钥的 HMAC 请用专门的 HMAC 工具或库。
平台说明
- macOS
- macOS 终端命令是 `md5 -s 'your text'`,文件哈希用 `md5 filename`。无需打开终端就能临时做哈希时,浏览器工具是更合适的选择。
- Windows
- PowerShell 等价命令:`[System.BitConverter]::ToString([System.Security.Cryptography.MD5]::Create().ComputeHash([System.Text.Encoding]::UTF8.GetBytes('text')))`。一次性哈希场景下浏览器工具更便捷。
- Linux
- 命令行等价命令是 `echo -n 'text' | md5sum`。当系统的 md5sum 不可用,或不想在 shell 历史里留下文本时,浏览器工具是临时哈希的正确选择。
- Web
- 完全在客户端运行。不会产生任何网络请求。任意实用长度的文本,哈希计算都几乎是瞬时的。