文本

SHA-1 哈希计算

在浏览器中实时计算输入字符串的 SHA-1 哈希值。SHA-1 生成 160 位哈希值,但 2017 年 SHAttered 攻击已实证碰撞,不建议用于新项目。


SHA-1

Tips

  • SHA-1 由 NSA 设计,1995 年被 NIST 标准化,输出 160 位(40 个十六进制字符)
  • 2017 年,Google 与 CWI 研究所通过"SHAttered"攻击首次实证 PDF 文件的 SHA-1 碰撞。
  • 主流浏览器已于 2017 年起将基于 SHA-1 的 TLS 证书标记为不受信任,Git 也在向 SHA-256 迁移。
  • git log 中可以看到 SHA-1 提交哈希,这是 SHA-1 在现实中最常见的形式之一。
  • 新系统设计中请使用 SHA-256 或更高级别的算法。

闲话 ― SHAttered:以 9.22 京次计算实证的碰撞攻击

2017 年,Google 与荷兰 CWI 研究所合作,历时约 2 年、动用 9.9 万个 CPU 核心,成功生成了两个内容不同但 SHA-1 哈希完全相同的 PDF 文件——这就是"SHAttered"攻击。

此前,SHA-1 碰撞在理论上已被认为可行,但 SHAttered 首次将其付诸实践,迫使各大主流服务加速废弃 SHA-1。GitHub、Subversion 等代码托管平台随即宣布了迁移计划。

尽管如此,部分嵌入式设备和老旧系统仍在使用 SHA-1。完全废弃仍需时日,但在任何新规设计中使用 SHA-1 均不可接受。