文件哈希计算器
计算任意文件的 MD5、SHA-1、SHA-256 和 SHA-512 哈希 —— 用于对照已发布的校验和验证下载。
- 将一个或多个文件拖进虚线框,或点击浏览。
- 点击「全部哈希」—— 每个文件的 MD5、SHA-1、SHA-256 和 SHA-512 都会被计算。
- 复制某一行的单个哈希,或以 SHA256SUMS 格式一次性获取所有文件的 SHA-256。
- 将已公布的校验和粘贴到「校验」框中,即可找出(是否有)匹配的文件。
它能做什么?
工具在本地读取你的文件,一次性生成四种业界标准摘要 —— MD5、SHA-1、SHA-256 和 SHA-512。新项目请使用 SHA-256;只有当校验对象的发布方仍提供 MD5 或 SHA-1 时才使用它们。「校验」框接受任意 hex 字符串并告诉你它匹配这四种算法中的哪一个(若有),因此你无需提前知道对方使用的是哪种。
示例
对 ubuntu-24.04.1-desktop-amd64.iso (6,114,656,256 字节) 进行哈希,得到:
MD5 e3a5c61d27d541e09ef0e894c514ad54
SHA-1 0bc9a82a4f7fc19f97cefc8a62e5ef10d2d65f80
SHA-256 c2e6f4dbefb08d47d3e3b41e4bcadce9dcebdf3a47f8c08390d6b8b10b35b1ab
SHA-512 bd4a8f30...d14e97c2 (128 hex chars) 将 Ubuntu SHA256SUMS 中的 SHA-256 行粘贴到「校验」框中,应该可以看到匹配。
为什么我的 SHA-256 与服务器公布的不同?
一些常见的不匹配原因和需要了解的限制:
- 文件边界不对。 对 archive.zip 整个文件哈希,与对其中单个文件哈希,结果不同。发布方通常对外层压缩包做哈希。
- 行尾被重写。 Windows 上启用 core.autocrlf=true 的 Git 在检出时会把 \n 变成 \r\n,工作目录文件就不再匹配上游哈希。请改用 core.autocrlf=false 检出,或直接下载原始 blob。
- Hex 与 Base64 混淆。 sha256sum 输出 hex。部分 S3 ETag 或签名清单使用 Base64。混用两者时总会失败。
- 浏览器内存限制。 SHA 系列会把整个文件读入 ArrayBuffer,4 GB 的 ISO 可能让移动端浏览器 OOM。改用桌面端,或对超大文件使用命令行 sha256sum。
- 跨算法比较。 SHA-256(64 位 hex)与 SHA-1(40 位 hex)不可比较。先对齐算法长度,再看内容。
- 粘贴时带了尾部空白。 复制 hex 摘要时若带上换行符,字符串就会是 65 位而不是 64 位。比较前请先修剪。
常见问题
MD5、SHA-1、SHA-256 和 SHA-512 有什么区别?
它们在输出长度和抗碰撞性上不同。MD5 是 128 位,SHA-1 是 160 位,SHA-256 是 256 位,SHA-512 是 512 位。MD5 和 SHA-1 已被刻意碰撞攻破,不应用于签名或密码存储 —— 但用于校验意外损坏的下载仍然可以。SHA-256 是现代默认选择,SHA-512 用于需要更长摘要的场景。
为什么我的 SHA-256 与服务器公布的不同?
通常是以下三种原因之一:文件在下载过程中被修改(CDN 转码、杀毒软件附加了页脚、或 Windows 上的 Git 改了行尾);发布方对压缩包做了哈希,而你对解压出的文件做了哈希(或相反);或者你在比较 hex 与 Base64。两端用同一工具重新计算,并先核对文件大小 —— 字节不同,哈希自然也不同。
文件大小有上限吗?
上限来自你的浏览器内存,而不是工具本身。这里的 SHA 系列会把整个文件读入 ArrayBuffer 交给 Web Crypto API,桌面端大致上限在几 GB,手机上要小得多。MD5 按 4 MB 分块流式处理,所以能容忍更大的文件,但整体流程是内存受限的。
与 sha256sum 或 PowerShell 的 Get-FileHash 结果一致吗?
一致。在 Linux/macOS 上运行 sha256sum file.iso,或在 PowerShell 5+ 中运行 Get-FileHash -Algorithm SHA256 file.iso,产生的小写 hex 摘要与本工具相同。若出现不一致,请确认双方哈希的是相同字节 —— PowerShell 默认 SHA-256,sha1sum / md5sum 分别对应其他算法。
适合用来校验 Linux ISO 下载吗?
适合,这正是预期用途。拖入 ISO,等 SHA-256 计算完毕,把发行版 checksums 文件中的期望值粘贴到「对照已知哈希校验」框。匹配意味着本地字节与发布方签名的完全相同。条件允许时,再用签名(GPG)校验 checksums 文件本身。
你们会保存我在这里哈希的文件吗?
不会。我们不保存你拖入的文件,也不保留生成的哈希。关闭或刷新页面的那一刻一切都被丢弃 —— 没有日志,没有你哈希了什么的记录。可以放心地拖入敏感文件,并可随时在浏览器开发者工具中自行验证。