SHA-1 哈希计算

免费在线 SHA-1 哈希计算 工具。100% 本地计算,数据不离开您的设备,隐私安全有保障。

General
Password Hashing / KDF
Specialized
Deprecated
输出

结果将显示在这里...

输入 计算哈希

使用指南

关于 SHA-1

SHA-1(Secure Hash Algorithm 1)是美国国家安全局(NSA)设计、美国国家标准与技术研究院(NIST)于 1995 年发布的密码哈希算法。SHA-1 将任意长度的数据转换为固定的 160 位(40 个十六进制字符)哈希值。SHA-1 曾是最广泛使用的哈希算法之一,但由于安全性问题,已被认为不安全。2017 年,Google 成功演示了 SHA-1 碰撞攻击(SHAttered),证明 SHA-1 已被实际破解。尽管如此,SHA-1 仍在某些遗留系统中使用,如 Git(正在迁移到 SHA-256)。

安全警告:SHA-1 已被证明存在碰撞漏洞,不应用于安全敏感场景。主流浏览器已停止信任 SHA-1 证书,新项目应使用 SHA-256 或更高级别的算法。仅用于非安全场景或兼容遗留系统

使用步骤

SHA-1 是单向哈希函数,只能计算哈希值,无法反向解密:

1. 输入内容在左侧输入框粘贴需要计算哈希的文本或数据
2. 计算哈希点击「计算哈希」按钮,在本地高效计算
3. 复制结果点击右侧「复制」按钮获取 40 位十六进制哈希值
隐私保护:所有计算在浏览器本地高速完成,数据不会上传服务器,完全离线处理。

安全性问题

SHA-1 存在严重的安全性问题,已被证明不安全:

理论攻击(2005)王小云教授团队将碰撞复杂度降至 2^69,远低于理论值 2^80
实际攻击(2017)Google 的 SHAttered 攻击成功生成 SHA-1 碰撞,证明 SHA-1 已被实际破解
浏览器弃用(2017)主流浏览器停止信任 SHA-1 SSL 证书
Git 迁移Git 正在从 SHA-1 迁移到 SHA-256,以提高安全性
严重警告:SHA-1 碰撞攻击已被实际演示,攻击者可以生成具有相同 SHA-1 哈希值的不同文件。这意味着 SHA-1 不能用于数字签名、SSL 证书、代码签名等安全场景。新项目必须使用 SHA-256 或更高级别的算法

仍在使用 SHA-1 的场景

尽管 SHA-1 不安全,但某些遗留系统仍在使用:

Git(遗留)Git 使用 SHA-1 标识提交,但正在迁移到 SHA-256
文件校验(非安全)某些旧系统仍使用 SHA-1 校验文件完整性(不推荐)
遗留系统某些无法升级的旧系统仍依赖 SHA-1

替代方案

应使用更安全的哈希算法替代 SHA-1:

SHA-256最常用的安全哈希算法,推荐作为 SHA-1 的替代
SHA-512更高安全性的哈希算法,适合高安全场景
SHA-3新一代哈希标准,基于不同的算法结构
BLAKE2高性能哈希算法,比 SHA-256 更快且同样安全

常见问题

Q: SHA-1 和 MD5 哪个更安全?

A: 两者都不安全,但 SHA-1 比 MD5 稍好一些。MD5:1)128 位输出。2)2004 年被破解,碰撞复杂度 2^39。3)碰撞攻击可在普通计算机上数小时内完成。SHA-1:1)160 位输出。2)2017 年被破解,碰撞复杂度约 2^63。3)碰撞攻击需要大量计算资源,但已被实际演示。结论:两者都不应用于安全场景,应使用 SHA-256 或更高级别的算法。

Q: Git 为什么还在使用 SHA-1?

A: Git 使用 SHA-1 标识提交、树和对象,但这是历史遗留问题。历史原因:Git 于 2005 年创建时,SHA-1 被认为是安全的。兼容性:更改哈希算法会破坏所有现有仓库的兼容性。风险评估:Git 的使用场景(版本控制)与 SSL 证书不同,碰撞攻击的风险相对较低。迁移计划:Git 正在迁移到 SHA-256(Git 2.29+ 支持),但需要时间完成过渡。缓解措施:Git 实现了碰撞检测机制,可以检测 SHAttered 类型的攻击。建议:新仓库应使用 SHA-256,旧仓库可以继续使用 SHA-1(但需注意风险)。

Q: SHA-1 可以用于密码存储吗?

A: 绝对不可以。SHA-1 不仅存在碰撞漏洞,而且不适合密码存储。问题:1)速度太快:GPU 可以每秒计算数十亿次 SHA-1,容易被暴力破解。2)碰撞漏洞:攻击者可能利用碰撞生成相同哈希值的不同密码。3)无盐值:单独使用 SHA-1 无法防御彩虹表攻击。正确做法:使用专门的密码哈希算法:1)Argon2(OWASP 推荐)。2)bcrypt(cost factor ≥ 12)。3)PBKDF2-SHA256(≥ 600k 迭代)。

Q: SHAttered 攻击是什么?

A: SHAttered 是 Google 于 2017 年演示的 SHA-1 碰撞攻击,证明 SHA-1 已被实际破解。攻击原理:生成两个不同的 PDF 文件,但具有相同的 SHA-1 哈希值。计算成本:约 6500 年的 CPU 计算时间和 110 年的 GPU 计算时间(分布式计算)。影响:1)证明 SHA-1 碰撞攻击可行。2)攻击成本随时间降低,未来可能更容易。3)主流浏览器停止信任 SHA-1 证书。示例:Google 发布了两个不同的 PDF 文件,但具有相同的 SHA-1 哈希值(shattered.io)。

Q: 如何从 SHA-1 迁移到 SHA-256?

A: 迁移到 SHA-256 需要评估影响和制定迁移计划。评估影响:1)识别所有使用 SHA-1 的系统和组件。2)评估迁移的兼容性和成本。3)确定迁移优先级(安全敏感场景优先)。迁移策略:1)双哈希:同时计算 SHA-1 和 SHA-256,逐步过渡。2)版本标识:在数据中标识使用的哈希算法。3)分阶段迁移:先迁移新数据,再迁移旧数据。Git 迁移:使用 git config --global init.defaultBranch main git config --global extensions.objectFormat sha256 创建 SHA-256 仓库。

Q: SHA-1 还有什么用途?

A: SHA-1 仅适用于非安全场景,且应尽快迁移到更安全的算法。可接受的用途:1)文件去重:在不涉及安全的场景下识别重复文件(但 SHA-256 更好)。2)校验和:检测意外的数据损坏(非恶意篡改)。3)遗留系统兼容:维护无法升级的旧系统(临时方案)。不可接受的用途:1)数字签名。2)SSL/TLS 证书。3)代码签名。4)密码存储。5)任何安全敏感场景。建议:即使在非安全场景,也应优先使用 SHA-256,因为性能差异很小,但安全性大幅提升。

使用场景

不推荐:SSL/TLS 证书

SHA-1 证书已被主流浏览器弃用,不应再使用。2017 年起,Chrome、Firefox、Edge 等浏览器停止信任 SHA-1 证书,访问使用 SHA-1 证书的网站会显示安全警告。CA 机构也已停止签发 SHA-1 证书。所有网站应使用 SHA-256 或更高级别的证书。

推荐配置:
  • ❌ 不推荐:SHA-1 证书(已弃用)
  • ✅ 推荐:SHA-256 证书(行业标准)
  • ✅ 推荐:SHA-384/SHA-512 证书(更高安全性)
  • 💡 使用 Let's Encrypt 免费获取 SHA-256 证书
不推荐:数字签名

SHA-1 数字签名存在碰撞风险,攻击者可能伪造签名。代码签名、文档签名、软件发布等场景不应使用 SHA-1。微软、Apple 等公司已停止接受 SHA-1 签名的软件。所有数字签名应使用 SHA-256 或更高级别的算法。

推荐配置:
  • ❌ 不推荐:SHA-1 签名(不安全)
  • ✅ 推荐:SHA-256 签名(行业标准)
  • ✅ 推荐:EdDSA(现代签名算法)
  • 💡 使用代码签名证书(SHA-256)
有限使用:Git 版本控制

Git 仍在使用 SHA-1,但正在迁移到 SHA-256。对于现有仓库,可以继续使用 SHA-1(Git 有碰撞检测机制)。对于新仓库,推荐使用 SHA-256。Git 2.29+ 支持 SHA-256,但需要注意兼容性问题(旧版 Git 无法读取 SHA-256 仓库)。

推荐配置:
  • ✅ 新仓库:使用 SHA-256(Git 2.29+)
  • ⚠️ 旧仓库:可继续使用 SHA-1(有风险)
  • ✅ 启用 Git 碰撞检测
  • 💡 计划迁移到 SHA-256
有限使用:文件校验和(非安全)

SHA-1 可用于检测意外的数据损坏(如传输错误),但不能防御恶意篡改。如果只是检测意外错误(非安全场景),SHA-1 仍然可用。但对于安全敏感场景(如软件下载、文件完整性验证),应使用 SHA-256

推荐配置:
  • ⚠️ 可用:检测意外数据损坏(非安全)
  • ❌ 不可用:防御恶意篡改(安全场景)
  • ✅ 推荐:使用 SHA-256 替代
  • 💡 SHA-256 性能差异很小,但安全性大幅提升
不推荐:密码存储

SHA-1 绝对不应用于密码存储。即使加盐,SHA-1 也容易被 GPU 暴力破解。密码存储应使用专门的密码哈希算法,如 Argon2、bcrypt 或 PBKDF2-SHA256。这些算法有可调节的计算成本,可以有效抵御暴力破解。

推荐配置:
  • ❌ 不推荐:SHA-1(速度太快,不安全)
  • ✅ 推荐:Argon2(OWASP 推荐)
  • ✅ 推荐:bcrypt(cost factor ≥ 12)
  • ✅ 推荐:PBKDF2-SHA256(≥ 600k 迭代)
不推荐:区块链和加密货币

区块链和加密货币不应使用 SHA-1。比特币使用 SHA-256,以太坊使用 Keccak-256。SHA-1 的碰撞漏洞可能导致双花攻击或其他安全问题。所有区块链项目应使用 SHA-256 或更高级别的哈希算法。

推荐配置:
  • ❌ 不推荐:SHA-1(不安全)
  • ✅ 推荐:SHA-256(比特币标准)
  • ✅ 推荐:Keccak-256(以太坊标准)
  • ✅ 推荐:BLAKE2(高性能替代)

安全警告

  • SHA-1 已被证明存在碰撞漏洞,不应用于任何安全敏感场景。
  • 主流浏览器已停止信任 SHA-1 SSL 证书,使用 SHA-1 证书的网站会显示安全警告。
  • 新项目必须使用 SHA-256 或更高级别的算法,不要使用 SHA-1。
  • 即使在非安全场景,也应优先使用 SHA-256,因为性能差异很小,但安全性大幅提升。
  • 如果必须使用 SHA-1(如兼容遗留系统),应尽快制定迁移计划。
  • Git 正在从 SHA-1 迁移到 SHA-256,新仓库应使用 SHA-256。

讨论与反馈

0 条评论