{ }
EN

哈希生成器(MD5 / SHA 系列)

对任意文本一次性计算 MD5、SHA-1、SHA-256、SHA-384、SHA-512 五种哈希。所有哈希都在浏览器内计算。

MD5
SHA-1
SHA-256
SHA-384
SHA-512

什么是密码学哈希?

密码学哈希函数把任意输入压缩成固定长度的摘要(digest)。它必须满足:确定性(同样的输入永远输出同样的摘要)、计算高效、不可反推。两个不同输入产生同样摘要叫碰撞,好的哈希函数应让碰撞实际上找不到。

本工具一次计算 5 种主流摘要。SHA-1、SHA-256、SHA-384、SHA-512 通过浏览器 Web Crypto API 完成,使用与平台其它部分一致的、经审计的实现。MD5 由我们手写实现(参考 RFC 1321),因为 Web Crypto 故意不再支持 MD5 —— 它在密码学意义上已破解,本工具仅为兼容历史系统(例如 Apache htpasswd 文件、老式 API 校验和)而提供。

使用场景

  • 为缓存或完整性校验生成内容指纹。
  • 在向只接受哈希 PII 的分析服务发送邮箱前先做 SHA-256。
  • 校验收到的消息与发送方公布的摘要是否一致。
  • 为 S3 或 IPFS 上的文档生成 content-addressed ID。
  • 为 memo 化的 API 响应生成稳定缓存 key。

最佳实践

  • MD5 与 SHA-1 不要再用于任何安全敏感场景 —— 已对碰撞攻击破解。
  • 存密码请用慢 KDF(bcrypt、scrypt、Argon2),不要直接用哈希。
  • 对用户输入哈希前要在两端一致地标准化(trim、lowercase)。
  • 新项目默认选 SHA-256;除非外部规范要求,否则不必上 SHA-512。

参考速查

算法输出长度 / 状态
MD5128 位(32 hex)。已破解 —— 不要用于安全。
SHA-1160 位(40 hex)。已破解 —— 不要用于安全。
SHA-256256 位(64 hex)。推荐的通用哈希。
SHA-384384 位(96 hex)。常见于 TLS 套件。
SHA-512512 位(128 hex)。略强一些,输出更长。

常见问题

MD5 既然已破解,为什么还在工具里?
MD5 在碰撞抗性上已破解,绝不应再用于安全场景;但仍有大量历史系统将它用作非安全的校验和。我们提供它仅为兼容这些系统。
输入会被发送到任何地方吗?
不会。SHA 系列由浏览器 Web Crypto API 计算,MD5 由打包在页面里的 JavaScript 计算。任何数据都不会离开本机。
可以哈希文件吗?
本工具只哈希文本。如果要哈希文件,可以在终端用 shasum -a 256 命令处理;文件版工具我们后续会做。
为什么默认是小写十六进制?
小写 hex 是 Unix 与现代加密库的惯例。如需与 PowerShell 或 .NET 输出对齐,可切换为大写。
存密码应该用哪个?
都不用。请使用内存密集、刻意慢速的 KDF,例如 Argon2、bcrypt、scrypt。快哈希让暴力破解变得廉价。