CyberGlossary

密码学

SHA-1

别称: 安全哈希算法 1, FIPS 180-1

定义

由美国国家安全局于 1995 年设计的密码学哈希函数,输出 160 位摘要,目前在抗碰撞性方面已被视为破解。

SHA-1(Secure Hash Algorithm 1)是一种基于 Merkle-Damgård 结构的哈希函数,可将任意长度的输入压缩为 160 位(20 字节)摘要,曾广泛用于 TLS 证书、Git 以及数字签名。NIST 在 FIPS 180-1 中发布该算法,作为 SHA-0 的继任者。2017 年 SHAttered 项目首次给出了实际的碰撞实例,2020 年 SHAmbles 进一步降低了选择前缀碰撞攻击的成本,因此 SHA-1 不应再用于签名、证书或需要抗碰撞性的完整性场景。现代系统应改用 SHA-256、SHA-3 或 BLAKE2;只有在不要求抗碰撞的旧版 HMAC 中,SHA-1 才仍可接受。

示例

  • Git 使用 SHA-1 标识提交和对象(正在向 SHA-256 过渡)。
  • 采用 SHA-1 签名的旧 X.509 证书,自 2017 年起被浏览器逐步弃用。

相关术语