MD5 文件校验值计算器
在本地计算任意文件(包括大文件)的 MD5 校验值,并与官方公布的哈希比对,验证下载是否完整。免费且私密。
尚未选择文件。选择文件后会立即显示校验值。
文件在浏览器中分块读取,绝不会上传。
什么是 MD5 文件校验?
本工具计算所选文件的 MD5 校验值(128 位摘要),并与预期值进行比对。文件在浏览器中以 4 MB 分块读取,因此支持大文件,且不会上传任何内容。
如何使用 MD5 文件校验
- 点击拖放区域或将文件拖到上面;文件会分块读取,并显示进度条。
- 查看下方显示的 文件名 和 文件大小,确认选对了文件。
- 将发布方提供的校验值粘贴到 预期校验值(可选) 中——会显示“匹配”或“不匹配”(大小写、
0x以及末尾的文件名都会被忽略)。 - 如需十六进制大写或 Base64,请选择 输出格式,然后点击 复制。
示例
A file named hash-abc.txt containing the 3 bytes "abc" (no newline)
900150983cd24fb0d6963f7d28e17f72
将此值(大小写均可)粘贴到预期校验值中,会显示匹配。
何时使用 MD5 文件校验
当发布方列出了 MD5 校验值时,可用它验证下载文件、备份或复制的文件是否完好,也可以在传输文件前记录校验值。MD5 匹配能证明文件没有意外损坏,但由于 MD5 已被攻破,它无法证明文件未被篡改——如果有 SHA-256 校验值或签名,请优先使用。若要对短字符串而不是文件计算哈希,请使用 MD5 文本哈希生成器。
MD5 文件校验 的工作原理
文件通过 File API 切成 4 MB 的片段,每个片段依次送入增量式 MD5 哈希器,因此内存占用很小,还能显示进度条。MD5 先把消息填充为 512 位的整数倍(一个 1 比特、若干 0,再加 64 位小端序长度),然后让每个分组在四个 32 位字上经过四轮、每轮 16 步的运算。每一步都会混入一个消息字、一个由正弦函数派生的常数和一次循环移位。最终状态按小端序写出,就是 128 位(32 个十六进制字符)的摘要。与预期校验值的比较基于摘要的字节进行,因此十六进制大小写和 Base64 都可以接受。
常见用例
- 根据下载页面上的校验值验证 ISO、安装包或固件镜像
- 确认复制到 U 盘、NAS 或云存储的文件逐位一致
- 在发布前记录发行文件的 MD5 校验值
- 判断两个名称不同的文件内容是否完全相同
- 对照旧归档中的 MD5 列表检查文件
安全提示
MD5 在安全方面已被攻破。 实用的碰撞攻击已经存在(例如 2008 年伪造 CA 证书和 Flame 恶意软件),所以两个不同的文件可以拥有相同的 MD5。它仍可用于检测意外损坏,但不要用于签名、证书或密码——请改用 SHA-256 或 SHA-3。校验值只有在预期值来自可信渠道时才能证明完整性;能替换文件的攻击者通常也能替换放在旁边的校验值。文件始终不会离开你的浏览器。
常见问题
我的文件会上传到服务器吗?
不会。文件通过浏览器的 File API 读取,并在你的设备上用 JavaScript/WebAssembly 计算哈希。页面加载完成后即使断开网络,也照样可以使用。
文件最大可以多大?
文件以 4 MB 分块处理,因此大小主要受时间而非内存限制。数 GB 的文件也能处理,速度取决于你的设备。
我的 MD5 与公布的值不一致,怎么办?
首先确认比较的是同一种算法和同一个文件(而不是下载不完整的文件)。如果仍然不同,请从官方来源重新下载;持续不匹配说明文件已损坏,或者并非发布方发布的那个文件。
预期校验值里可以粘贴什么?
大写或小写的十六进制值(带不带 0x 均可)、Base64 形式,或校验文件中的一整行,例如 <hash> filename——只比较第一个单词。