SHA-1 哈希生成器

为旧系统兼容性任务计算 SHA-1,核对原始字节,并明确了解其安全限制。

0 字节UTF-8 · 不去空格、不转换换行

计算结果

点击生成查看结果,空字符串也可计算。

在浏览器本地处理,不上传内容。

其他哈希与校验工具

本工具计算什么

SHA-1 输出 160 位摘要,通常表示为 40 个十六进制字符。本页面向需要复现旧系统结果、核对兼容性测试或读取历史清单的场景。即使输出看起来都是十六进制,也不能把 SHA-1 与 MD5、SHA-256 直接比较。保留结果时,应一并记录算法名称。

复现历史摘要需要完全相同的字节,而不只是视觉相似的文本。编辑器附加的换行、文件开头的字节顺序标记、不同的 Unicode 表示,都可能使结果改变。核对已保存的文档时,应选择原文件,不要仅复制文档里显示的文字。

SHA-1 已被发现存在碰撞弱点。旧协议使用它,并不意味着新系统也应该选择它。若业务需要证明消息来自掌握共享密钥的一方,应使用适当的 HMAC 等认证机制;无密钥摘要不提供这种身份保证。

可核对的示例

UTF-8 · abc · SHA-1

a9993e364706816aba3e25717850c26c9cd0d89d

如何计算与比较

  1. 在输入文本中粘贴需要计算的内容,或点击示例加载 abc。工具按 UTF-8 编码计算,保留输入中的空格和换行。
  2. 单条文本模式下,不超过 64 KiB 的非空输入会在停止输入片刻后自动计算。计算空字符串或更大的文本时,请点击生成哈希。修改输入后,旧结果会立即清除。
  3. 如需核对已保存的文件,请切换到文件校验,确认算法后选择或拖入文件。文件模式会读取原始字节并自动开始计算。

批量处理时,勾选每行独立计算,选择是否包含空行,再点击生成哈希。逐行模式不会自动计算。CRLF、LF 和 CR 仅用于分隔记录,不计入各行摘要;重复行保留各自的原始行号。

将完整的十六进制参考值粘贴到比较预期值(可选),再点击核对。比较时忽略字母大小写和首尾空白,但不接受内部空格或错误长度。复制会保留完整结果。TXT、CSV 导出包含输入标识、算法和摘要,不包含原始文本或密钥。

限制、隐私与下一步

文本上限为 10 MiB;逐行模式最多接受 10,000 条记录,按过滤空行前的数量计算。文件队列最多 50 个文件,每个不超过 1 GiB,按 2 MiB 分块依序读取。这些限制用于控制浏览器资源占用,不保证每部手机都能快速处理最大输入;必要时可取消计算。计算在浏览器中完成,正常的页面和资源请求仍会发送到托管服务器。

SHA-1 文件摘要不等于 Git 对象 ID

本页计算的是文本或文件的原始字节。在使用 SHA-1 的 Git 仓库中,对象 ID 并不只是可见文件内容的 SHA-1:Git 会加入对象头,创建 blob 时还可能应用过滤规则。因此,和 git hash-object 不同,并不能直接说明本页算法有错。

核对旧系统前,先确认字段要求的是原始文件摘要、对象标识,还是某个签名结构中的摘要。原始 SHA-1 可以在这里复现,Git 对象应交给 Git 自身的命令计算。保留协议指定的算法名称,不要在不改协议的情况下悄悄换成更长的哈希。

原始文件 SHA-1 与 Git blob SHA-1 的对照

对于 abc 这三个字节,Git 的 SHA-1 blob 表示会在内容前加入 blob 3 和一个零字节。不要把可见的反斜杠加数字零输入文本框:这里是在解释对象表示,本工具没有 Git 对象计算模式。

SHA-1 / 原始 abc 字节:
a9993e364706816aba3e25717850c26c9cd0d89d
SHA-1 / Git blob (62 6c 6f 62 20 33 00 61 62 63):
f2ba8f84ab5c1bce84a7b441cb1959cfc7093b7f

SHA-1 兼容性排错

现象原因处理方式
与 Git 对象 ID 不同Git 计算的是对象表示而非单独文件内容使用 git hash-object,并检查仓库过滤规则。
参考值有 64 个十六进制字符这不是完整的普通 SHA-1 摘要确认系统是否实际要求 SHA-256。
旧文件编辑后无法复现摘要保存过程可能改变编码或换行优先计算未经编辑的原始文件。

相关工具与指南

FIPS 180-4 · Git object format

常见问题

SHA-1 有碰撞弱点,为什么还提供?

用于复现既有格式和旧系统兼容性测试,不代表建议在新的安全设计中采用 SHA-1。

为什么文件的 SHA-1 与 git hash-object 不同?

Git 会在对象内容前加入类型和长度等头信息,也可能应用过滤规则。本页只计算原始字节摘要,不生成 Git 对象 ID。

旧接口中的 SHA-1 能直接换成 SHA-256 吗?

不能直接替换,除非同步调整协议或数据格式。两者的摘要长度和算法标识不同。兼容性复现与系统迁移应分别处理。

SHA-1 匹配能证明旧版软件来自官方吗?

单凭匹配不能证明。参考值必须来自可信来源,而且 SHA-1 存在碰撞弱点。有官方签名验证流程时,应按其流程验证来源。