MD4 文件校验值计算器

在本地计算任意文件(包括大文件)的 MD4 校验值,并与官方公布的哈希比对,验证下载是否完整。免费且私密。

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

尚未选择文件。选择文件后会立即显示校验值。

文件在浏览器中分块读取,绝不会上传。

什么是 MD4 文件校验?

本工具计算所选文件的 MD4 校验值(128 位摘要),并与预期值进行比对。文件在浏览器中以 4 MB 分块读取,因此支持大文件,且不会上传任何内容。

如何使用 MD4 文件校验

  1. 点击拖放区域或将文件拖到上面;文件会分块读取,并显示进度条。
  2. 查看下方显示的 文件名 和 文件大小,确认选对了文件。
  3. 将发布方提供的校验值粘贴到 预期校验值(可选) 中——会显示“匹配”或“不匹配”(大小写、0x 以及末尾的文件名都会被忽略)。
  4. 如需十六进制大写或 Base64,请选择 输出格式,然后点击 复制。

示例

输入
A file named hash-abc.txt containing the 3 bytes "abc" (no newline)
输出
a448017aaf21d8525fc10ae87aa6729d

将此值(大小写均可)粘贴到预期校验值中,会显示匹配。

何时使用 MD4 文件校验

当发布方列出了 MD4 校验值时,可用它验证下载文件、备份或复制的文件是否完好,也可以在传输文件前记录校验值。MD4 匹配能证明文件没有意外损坏,但由于 MD4 已被攻破,它无法证明文件未被篡改——如果有 SHA-256 校验值或签名,请优先使用。若要对短字符串而不是文件计算哈希,请使用 MD4 文本哈希生成器。

MD4 文件校验 的工作原理

文件通过 File API 切成 4 MB 的片段,每个片段依次送入增量式 MD4 哈希器,因此内存占用很小,还能显示进度条。MD4 先用一个 1 比特、若干 0 和 64 位小端序消息长度把消息填充为 512 位的整数倍,然后让每个 512 位分组在四个 32 位字上经过三轮、每轮 16 次运算,使用非线性函数 F、G、H、加法和循环左移。四个最终字按小端序拼接,构成 128 位摘要。与预期校验值的比较基于摘要的字节进行,因此十六进制大小写和 Base64 都可以接受。

常见用例

  • 根据下载页面上的校验值验证 ISO、安装包或固件镜像
  • 确认复制到 U 盘、NAS 或云存储的文件逐位一致
  • 在发布前记录发行文件的 MD4 校验值
  • 判断两个名称不同的文件内容是否完全相同
  • 对照旧归档中的 MD4 列表检查文件

安全提示

MD4 已被彻底攻破。 只需手算规模的计算量就能找到碰撞,而它至今仍是 NTLM 密码哈希的核心,这正是 NTLM 哈希如此容易被破解的原因。仅用于兼容场景(例如 eDonkey/ed2k 链接、NTLM 研究);绝不要用于安全用途。校验值只有在预期值来自可信渠道时才能证明完整性;能替换文件的攻击者通常也能替换放在旁边的校验值。文件始终不会离开你的浏览器。

常见问题

我的文件会上传到服务器吗?

不会。文件通过浏览器的 File API 读取,并在你的设备上用 JavaScript/WebAssembly 计算哈希。页面加载完成后即使断开网络,也照样可以使用。

文件最大可以多大?

文件以 4 MB 分块处理,因此大小主要受时间而非内存限制。数 GB 的文件也能处理,速度取决于你的设备。

我的 MD4 与公布的值不一致,怎么办?

首先确认比较的是同一种算法和同一个文件(而不是下载不完整的文件)。如果仍然不同,请从官方来源重新下载;持续不匹配说明文件已损坏,或者并非发布方发布的那个文件。

预期校验值里可以粘贴什么?

大写或小写的十六进制值(带不带 0x 均可)、Base64 形式,或校验文件中的一整行,例如 <hash> filename——只比较第一个单词。

探索更多分类