哈希生成器

使用 SHA-1、SHA-256、SHA-384 和 SHA-512 生成加密哈希。所有计算通过 Web Crypto API 在本地完成。

关于哈希生成器

这个哈希生成器完全在你的浏览器中运行。在上方输入框中粘贴任意文本,点击生成哈希即可同时计算 SHA-1、SHA-256、SHA-384 和 SHA-512 哈希。所有计算都通过 Web Crypto API 在本地完成——你的输入永远不会离开设备。

什么是哈希函数?

加密哈希函数接收任意输入,并产生固定长度的字节串,称为摘要或哈希。一个优秀的哈希函数是确定性的(相同输入总产生相同输出)、计算快速、难以逆向、抗碰撞(不同输入很少产生相同哈希)。即使输入仅变化一个比特,输出也会完全不同——这就是雪崩效应。

SHA 家族

  • SHA-1 —— 产生 160 位(40 个十六进制字符)摘要。最初由 NSA 设计。已不再被认为能抵抗碰撞攻击,请勿用于安全敏感场景。
  • SHA-256 —— 产生 256 位(64 个十六进制字符)摘要。属于 SHA-2 家族。广泛用于 TLS、比特币、代码签名和数字证书。
  • SHA-384 —— 产生 384 位(96 个十六进制字符)摘要。是 SHA-512 的截断变体,使用不同的初始值。
  • SHA-512 —— 产生 512 位(128 个十六进制字符)摘要。专为 64 位平台和高安全场景设计。

常见使用场景

  • 数据完整性 —— 在传输前后比较哈希以验证文件或消息是否被修改。
  • 密码存储 —— 存储密码的哈希而非明文。(实际应用请使用 bcrypt、scrypt 或 Argon2 等慢速 KDF,而非单纯的 SHA。)
  • 文件校验 —— 将下载文件的校验和与公布的 SHA-256 值对照,以发现损坏或篡改。
  • 数字签名 —— 签名前先对文档做哈希,以提升效率与安全性。
  • 内容寻址 —— Git、IPFS 等系统使用哈希作为内容的唯一标识。

常见问题

哈希能逆向吗? 不能。加密哈希是单向函数。无法从哈希恢复输入,只能验证某个输入是否会产生该哈希。

我的输入会被发送到服务器吗? 不会。所有哈希计算都通过浏览器的 Web Crypto API 在本地完成,不会上传任何数据。

能用这个工具哈希文件吗? 当前版本仅支持文本输入。要哈希文件,需要将文件读取为 ArrayBuffer 然后传给 crypto.subtle.digest

应该使用哪种算法? 新应用请使用 SHA-256 或 SHA-512。SHA-1 因已知碰撞漏洞已不推荐用于安全场景。