MD5哈希校验

输入
0 字符 / 0 字节
MD5 已被证明存在碰撞攻击(2004 年起即可人为构造碰撞), 不能用于数字签名、证书、口令存储等安全场景。它只适合做文件完整性校验(如校验下载文件是否损坏)、 去重指纹等非对抗性用途。
计算结果
输入文本或选择文件后自动计算 MD5 哈希
在线计算文本与文件的 MD5 哈希值,支持拖拽大文件分块计算、十六进制/大写/Base64/分段多种格式,并可粘贴已有 MD5 值自动校验比对。全部在本机浏览器完成,文件不上传服务器。

这个工具能做什么

MD5 在线哈希与校验工具,覆盖三种用法:

  1. 文本哈希:输入或粘贴任意文本,右侧实时输出 MD5 值(128 位,即 32 位十六进制)。
  2. 文件哈希:切到「文件」标签,点击选择或直接把文件拖进来。工具按 4 MB 分块读取,几百 MB 的文件也能算,并且显示进度,不会把页面卡死。
  3. 校验比对:把已知的 MD5 值粘贴到「校验比对」输入框,工具会自动忽略大小写、空格、冒号和连字符进行比较,不一致时还会指出第一个不同的字符位置。

所有计算都在浏览器本机完成,文本内容与文件都不会上传到服务器。

使用步骤

  1. 在左上角选择「文本」或「文件」模式。
  2. 文本模式:输入即自动计算,右侧同步刷新;点「示例」可填入一段测试文本。
  3. 文件模式:选择文件后自动开始分块计算,下方显示读取进度,完成后显示文件大小与耗时。
  4. 需要复制时,点击哈希值本身,或右上角的「复制」按钮。
  5. 需要核对时,把待比对的 MD5 值粘贴进「校验比对」框。

MD5 是什么

MD5(Message Digest Algorithm 5)由 Ronald L. Rivest 于 1991 年设计,1992 年发布为 RFC 1321,用于把任意长度的输入压缩成固定的 128 位摘要。

项目说明
输出长度128 位 = 16 字节 = 32 位十六进制
分组长度512 位
设计者Ronald L. Rivest(MIT)
标准文档RFC 1321
是否可逆不可逆,无法从摘要还原原文
安全性已被实际攻破,不可用于安全场景

半 MD5(16 位短格式) 指的是取 32 位十六进制中的第 9—24 位,也就是 16 个字符。它只是截断,没有任何额外强度,碰撞概率远高于完整 MD5,仅适合做展示用的短标识。本工具在结果区单独列出了这一项,方便与旧系统对齐。

⚠️ MD5 已经不安全

1996 年就有人指出 MD5 的设计缺陷;2004 年王小云团队给出了可实用化的碰撞构造方法;2008 年研究人员用普通笔记本集群伪造出带有合法 MD5 签名的 CA 证书。也就是说:

  • 能人为构造两个不同的文件拥有相同的 MD5*(碰撞攻击),因此 MD5 *不能用于数字签名、证书、软件发布校验等对抗性场景。
  • 不能用于口令存储。MD5 计算速度极快,现代显卡每秒可以尝试数百亿次,配合彩虹表几乎等于明文。口令存储请改用 Bcrypt、Argon2 或 PBKDF2。
  • 仍然适合非对抗性场景:校验下载的文件是否传输损坏、判断两份数据是否相同、为缓存生成键、日志去重指纹等。这些场景里没有攻击者主动构造碰撞,MD5 的速度反而是优点。

结果区里的几种格式

格式说明典型用途
小写十六进制默认输出,32 个字符最常见,多数校验网站与脚本使用
大写十六进制32 个大写字符部分旧工具、Windows 自带 certutil 输出
Base6416 字节摘要的 Base64,24 个字符含填充部分 API、Content-MD5 请求头(HTTP 规范要求 Base64)
分段(每 8 位)便于人工核对的长串分组抄写、比对时降低看错概率
16 位(半 MD5)摘要的第 9—24 位十六进制旧论坛、旧程序的短标识

HTTP 协议里的 Content-MD5 请求头要求的是 Base64 形式的原始 16 字节摘要,而不是十六进制字符串,这是很常见的踩坑点。本工具直接给出 Base64 行,可以省去换算。

常见误区

  • MD5 不是加密。加密是可逆的(有密钥可以还原),哈希是不可逆的单向摘要。所谓「MD5 解密」网站本质上是查预计算的彩虹表,只能命中常见弱口令,不是真的解密。
  • 加盐能救 MD5 吗*。加盐可以挡住彩虹表,但挡不住暴力破解,因为 MD5 太快了。要抵抗暴力破解必须用*慢哈希(Bcrypt / Argon2 / PBKDF2)。
  • 同一个文件在不同工具里算出的 MD5 不一样。常见原因是文本编码不同(UTF-8 与 GBK 的字节序列不同)、多了换行符(Windows 的 CRLF 与 Unix 的 LF),或者复制时带上了不可见字符。计算文本哈希时请确认编码一致。
  • 文件 MD5 变了就是文件坏了。不一定,也可能只是被重新保存、重新打包,或元数据被修改。MD5 只能告诉你「字节是否完全一致」。

常见问题 FAQ

计算文件 MD5 时浏览器卡住了怎么办?

工具已按 4 MB 分块并在块之间让出主线程,正常情况下不会明显卡顿。如果文件特别大(超过 1 GB),建议等待进度条走完,期间不要切换标签页或最小化窗口,部分浏览器会限制后台页面的执行频率。

MD5 和 SHA-256 该选哪个?

如果只是校验文件是否损坏、做去重指纹,MD5 更快且兼容性更好;如果涉及安全(签名、证书、完整性防篡改),必须选 SHA-256 或 SHA-512。新项目建议直接用 SHA-256。

HTTP 的 Content-MD5 请求头该填什么?

填**原始 16 字节摘要的 Base64**,不是 32 位十六进制字符串。本工具结果区已经单独给出 Base64 形式,直接复制即可。

校验比对时需要注意什么?

工具会自动忽略大小写、空格、冒号与连字符,所以 32 位十六进制、带空格的分段写法都能正确比对。如果长度不一致会直接提示;长度一致但不相同,会告诉你从第几位开始出现差异。

MD5 是加密算法吗?能解密吗?

不是加密,是哈希(单向摘要),本质上不可逆。网上所谓「MD5 解密」其实是拿常见口令预先算好的彩虹表来反查,只能命中弱口令,不是数学上的还原。

为什么同一个文本算出来的 MD5 和别人不一样?

多半是编码或换行差异:UTF-8 与 GBK 对同一段中文产生的字节序列不同;Windows 的 CRLF 与 Unix 的 LF 也是不同字节。请确认双方使用相同的编码与换行符。

多大的文件可以计算?

没有硬性上限,工具按 4 MB 分块顺序读取,内存占用恒定。实际速度取决于磁盘读取速度与浏览器内存,几个 GB 的文件通常也能正常完成,过程中会显示进度条。

文件不会上传到服务器吧?

不会。哈希计算全部通过浏览器本地的 WebAssembly 完成,文件只在本机读取,不发送任何请求。你可以在浏览器开发者工具的 Network 面板确认没有上传流量。

MD5 的「16 位」和「32 位」有什么区别?

32 位是完整 MD5(16 字节摘要的十六进制表示);16 位是截取完整值中间的第 9—24 个字符,也叫「半 MD5」。截断不会增加强度,只会让碰撞更容易,仅适合做短标识展示。

为什么说 MD5 不能用来存密码?

MD5 计算极快,现代显卡每秒可尝试数百亿次,弱口令在几秒内就能暴力破解,配合彩虹表更可直接查表命中。口令存储必须使用专门设计的慢哈希:Bcrypt、Argon2 或 PBKDF2。

MD5 还能用吗?安全吗?

分场景看。MD5 已被实际攻破(2004 年王小云团队给出碰撞构造方法,2008 年出现伪造 MD5 签名的 CA 证书),所以**不能**用于数字签名、证书、口令存储等对抗性场景。但它依然适合校验文件是否传输损坏、数据去重、生成缓存键这类非对抗性用途。

MD5 是什么?

MD5 是 1991 年由 Ronald Rivest 设计的消息摘要算法,1992 年发布为 RFC 1321。它把任意长度的输入压缩成固定的 128 位(32 位十六进制)摘要,是单向不可逆的,无法从摘要反推出原文。