输入
MD5
SHA-1
SHA-256
SHA-384
SHA-512

Hash 计算的常见使用场景

📥
校验下载文件
把发布方公布的 SHA-256 粘到「比对」框,工具自动告诉你下载的镜像是否完整未被篡改。
🔐
API 签名调试
多数开放平台需要对请求体计算 SHA-256/MD5 作签名,本工具提供与服务端一致的结果。
🗃️
去重 / 内容寻址
用 Hash 作为内容指纹,可以快速去重图片、文档、备份,也是 Git 等系统的核心思想。
🛡️
文件完整性归档
把重要文件的 SHA-256 与日期一起记录下来,多年后仍能验证文件未被改动。

哪种 Hash 该选哪个?

  • MD5(128 bit):⚠️ 已破解。适合非安全用途的完整性校验、缓存 key、文件去重。不要用于密码存储或数字签名。
  • SHA-1(160 bit):⚠️ 已发现碰撞。Git 仍在用,但新场景应避免。
  • SHA-256(256 bit):✅ 当前主流安全摘要,适合签名、token、Bitcoin、TLS 证书指纹。
  • SHA-384 / SHA-512:✅ 同等安全等级、更长输出,部分协议(如 Apple)默认。在 64 位 CPU 上 SHA-512 通常比 SHA-256 更快。
常见问题
MD5 还安全吗?
不安全。MD5 自 2004 年起已发现实际碰撞攻击(可以构造两个不同输入产生同样 hash),不再适合密码存储、数字签名等安全场景。但作为非安全用途的完整性校验(如下载文件比对、缓存 key、去重)依然广泛使用。安全场景请使用 SHA-256 及以上。
支持大文件吗?
支持。SubtleCrypto.digest 一次性吞入整个文件,受限于浏览器可用内存,单文件建议不超过 1GB。在大多数现代设备上每秒可处理数百 MB(SHA-256/512),MD5 略慢一些。
数据会上传到服务器吗?
不会。SHA-1/256/384/512 通过原生 SubtleCrypto API 在浏览器内完成;MD5 在你点击「计算」时按需懒加载小型纯 JS 库(js-md5)在本地计算。文件从不上传服务器。
为什么不同工具的 Hash 结果有时不同?
因为输入字节不一致:行尾差异(CRLF vs LF)、文本编码(UTF-8 vs UTF-8 BOM vs GBK)、隐藏空白字符、文件末尾是否有换行等。本工具默认按 UTF-8(无 BOM)编码字符串,与 Java、Python、Go、Linux md5sum 完全一致。