SHA-1 哈希生成器

请输入要哈希的文本。

选择 SHA-1,输入文本并生成,即可得到 160 位摘要,以 40 位十六进制字符表示。当旧系统、数据源或脚本仍然要求 SHA-1,并且你需要某个字符串的准确值时,这个工具很有用。

如何生成 SHA-1 哈希值

  1. 1

    输入文本

    粘贴完全一致的字符串。多一个空格或换行,摘要就会改变。

  2. 2

    选择 SHA-1

    由于默认选中的是 SHA-256,请在算法列表中选择 SHA-1。

  3. 3

    生成

    点击生成按钮,即可显示 40 位摘要。

  4. 4

    复制

    复制 SHA-1 的值;如需其他算法,可在完整列表中复制。

SHA-1 摘要的样子

SHA-1 输出 160 位,写成 40 位十六进制字符。

输入 SHA-1 摘要
hello aaf4c61ddcc5e8a2dabede0f3b482cd9aea9434d
Hello f7ff9e8b7bb2e09b70935a5d785e0cc5d9d0abf0
hello world 2aae6c35c94fcfb415dbe95f408b9ce91ee846ed

仍然适合使用 SHA-1 的情况

  • 匹配已有的值: 用 SHA-1 生成的数据库字段、接口签名或文件清单,只能用 SHA-1 复现。
  • 遗留协议: 一些较旧的集成,例如特定的 webhook 或数据源格式,规定了 SHA-1,而你这边无法更改。
  • 无需对抗攻击的标识符: 版本控制系统长期使用 SHA-1 为对象命名,其目的是获得唯一标签,而不是防范攻击者。

应选择其他算法的情况

2017 年,研究人员公布了 SHA-1 的第一个实际碰撞:两份不同的文档具有相同的摘要。标准化组织已不再建议将其用于签名和证书。对于需要完整性或真实性的新工作,请使用 SHA-256 或 SHA-512。这两种算法在本工具中都可以一键选择,你可以直接比较输出长度。

SHA-1 也不适合用于密码。它计算速度快,攻击者可以尝试大量猜测。请使用带盐的 bcrypt、scrypt 或 Argon2id。

核对结果

要验证某个值,可以用命令行工具进行比较,但要注意 echo 会添加换行。printf 'hello' | sha1sum 返回 aaf4c61ddcc5e8a2dabede0f3b482cd9aea9434d,与上表一致。

读取 SHA-1 值

十六进制数字为 0 到 9 以及 a 到 f,字母大小写不影响结果。本工具输出小写。若与使用大写的参考值比较,请先统一其中一方的大小写。务必复制完整的 40 个字符,因为缩短的前缀并不是同一个摘要。

如果需要为同一字符串展示多种算法,例如在文档中,请只生成一次,然后使用主结果下方的完整列表,而不是重复操作。

验证示例

对 hello world 两个单词进行哈希,应得到 2aae6c35c94fcfb415dbe95f408b9ce91ee846ed。如果你的系统显示的是其他值,说明被哈希的输入并不是这 11 个字符。请检查末尾是否有换行、是否有重复的空格,或对方使用的字符编码是否不同。

常见问题

40 位十六进制字符,即 160 位。

就抗碰撞性而言,是的。实际碰撞已经存在,因此不要将其用于签名或证书。不过用于匹配旧的既有值时,它的计算结果仍然是正确的。

SHA-256 是较新的 SHA-2 函数,摘要为 256 位(64 个字符),目前没有已知的实际碰撞。SHA-1 的摘要为 160 位。

本工具只对文本进行哈希。计算文件请在你的电脑上使用 sha1sum 或 Get-FileHash。

相关工具

此工具还提供其他语言版本

使用指南与应用场景