跳到内容

🔐 文件哈希计算与校验 (SHA-256 / MD5 / SHA-1)

只需将文件拖放到浏览器即可立即计算 MD5、SHA-1、SHA-256。适用于检测下载文件是否被篡改和验证完整性。

完全免费 无需注册 浏览器内完成 5 种语言 深色模式

✅ 与预期值比对 (校验模式)

粘贴下载源网站提供的 SHA-256 / MD5 / SHA-1 值,自动判定是否与上方计算结果一致。不一致 = 文件损坏或被篡改。

如有问题或显示异常,请通过以下方式联系我们: 联系表单 — 我们利用反馈改进。

其他工具

相关文章

📖 常见的坑

把文件拖进来,它会用 Web Crypto API 计算 MD5 / SHA-1 / SHA-256;粘贴期望值后即可判定是否一致。文件不会离开你的浏览器。你在这里能确认的,只是「手上的字节序列是否与已公布的值一致」——文件是否安全、以及公布的那个值本身是否可信,哈希都回答不了哈希是「同一性」的工具,不是「正当性」的工具。把这两者混为一谈,最终会变成自以为在验证,实际上什么也没验证的状态。

情形 会发生什么 怎么处理
哈希一致并不证明没有被篡改 如果公布的哈希值与下载文件放在同一台服务器上,两者都能被改写。攻击者既然能替换文件,也就能替换紧挨着它的那个哈希值——而且因为一致,你的验证会成功。这种布局能防住的只有「传输中的损坏」和「拿错了镜像」对来自被入侵服务器的下载毫无作用。实际上已有若干开源项目因分发服务器被攻破,二进制文件与校验和被同时改写「我核对过校验和了」这句话,单独拿出来并不构成安全论证。 请通过与文件不同的渠道获取哈希值。如果你从镜像站下载,就到上游的发布说明或 GitHub 的 Releases 页面去取哈希更可靠的是验证签名GPG、minisign、操作系统的代码签名没有私钥就无法生成,仅仅攻破服务器并不足以伪造——而且只需一行 gpg --verify file.sig file接着要追问的是「你的密钥是从哪儿来的」——若是从同一个被攻破的站点下载的,那就回到了起点如果能用包管理器(apt / dnf / winget / Homebrew),那是最优解——密钥的分发与验证已内建于机制之中,你没有把流程做错的余地
MD5 与 SHA-1 已经无法用于检测篡改 MD5 的碰撞用一台笔记本几秒钟就能造出来——也就是说,有人可以刻意生成一份看似无害的文档与一个恶意可执行文件,让它们的 MD5 相同SHA-1 也在 2017 年公开了真实碰撞,到 2020 年更是给出了针对任意选定前缀构造碰撞的方法。这意味着,「MD5 一致,所以是同一个文件」这一推论已经不再成立不过按用途来看它们仍然有用——若目的只是检测偶发损坏(传输错误、磁盘故障),MD5 依然完全够用。可以这样归纳:只有在不存在攻击者的前提下才能使用 出于安全目的,请使用 SHA-256。本页会同时计算三种,因此即便对方只公布了 MD5,把 SHA-256 记下来,之后就能做强比较如果你是分发方,请公布 SHA-256——用 sha256sum file(Linux)、shasum -a 256 file(macOS)、certutil -hashfile file SHA256(Windows)即可生成。修改既有 MD5 系统时的优先级很明确:用于签名验证或认证的最优先替换;仅用作文件去重键或缓存键的则不必着急——因为那里没有攻击者可以介入的通路如果你用 MD5 甚至 SHA-256 来存储密码,那是另一类问题——请换成 bcrypt 或 Argon2
不一致的原因绝大多数不是篡改 当数值对不上时,首先该怀疑的是流程上的偏差。按出现频率从高到低:下载被截断了(比一比文件大小就一目了然)、计算哈希的对象搞错了(页面给的是 .iso 的值,你算的却是 .zip)、粘贴期望值时混进了多余的空格或换行大小写不同(这里会忽略大小写,所以并不构成问题)。最容易被忽略的是经由 Git 取得的文本文件——在启用了 core.autocrlf 的 Windows 上,检出时换行会被转换为 CRLF,字节序列改变,哈希自然也变了。于是就出现了一种合理的状态:文件内容「相同」,哈希却不同。 请先比较文件大小。分发页面通常会写明字节数——大小不同的话,连哈希都不用算,那要么是另一个文件,要么是下载不完整重新下载请用 curl -L -Owget -c 而不是浏览器,这样不容易被截断,即使被截断也能察觉。验证文本文件时,请先统一换行符再比较(见 换行符转换)。还有最重要的一条原则哈希不一致的文件,在查明原因之前不要运行。心想「大概只是下载失败吧」就照样运行,等同于根本没验证——重下一次、重查一次,成本不过如此

不要用哈希来做个人信息的匿名化。像邮箱地址、电话号码这类取值空间实际上有限的东西可以用穷举反推回去——一个国家的手机号也就 10 亿种量级,把它们全部哈希一遍做成对照表,用不了几分钟在许多法域,经过哈希的个人信息依然是个人信息。若确有需要,请改用带秘密密钥的 HMAC 而不是加盐,或者干脆采用可逆加密并妥善管理密钥。另有一条实务提醒:「同一个文件」的定义因格式而异——ZIP 含有时间戳,因此把相同内容重新压缩一次,哈希就变了Docker 镜像与 tar 同理每次构建得到不同哈希是正常的若你需要可复现的哈希,就需要一套固定时间戳的可复现构建机制。

📖 使用方法

  1. 1
    拖放文件
    将要验证的文件拖到拖放区。
  2. 2
    自动计算哈希
    MD5 / SHA-1 / SHA-256 并行计算并流式处理。
  3. 3
    与预期哈希比较
    粘贴厂商提供的预期哈希进行对比。

❓ 常见问题

支持 SHA-3 / BLAKE2 吗?
目前仅支持 Web Crypto 原生哈希。
文件会上传到服务器吗?
不会。使用浏览器的 FileReader 和 Web Crypto 本地处理。
如何验证文件未被篡改?
与厂商提供的预期值比较。
MD5 还安全吗?
MD5 存在碰撞攻击,不适合安全场景。
🐛 此工具出现问题了吗?

免费、无需注册。仅提供复现步骤也有帮助。报告将直接发送给运营者并用于改进。

※ 为复现问题,浏览器信息 (UA / 屏幕 / 语言 / URL) 将自动发送