文本
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 均不可接受。