工具会将输入文本按 UTF-8 编码,输出 160 位 SHA-1 摘要,也就是 40 个十六进制字符。适合重现已知的文本校验码或旧系统测试数据。它计算的是文本本身,并非 Git 对象或任意文件的原始字节;下方示例可帮助你先确认输入内容,再比对结果。
SHA-1 是固定且单向的哈希,但已知碰撞攻击让它不适合新的安全流程。请只把它用于兼容性比对;需要保护时改用 SHA-256、HMAC、签名或密码哈希算法。
关于这个主题的常见疑问与实用解答。
SHA-1 产生 160 位(40 个十六进制字符)的哈希值。它曾广泛用于 Git 提交和证书,但现在被认为在加密用途上不够安全。
SHA-1 因已知的碰撞攻击而已被弃用于加密用途。非密码的完整性检查可使用 SHA-256 或 SHA-3,密码存储则应使用密码哈希算法。
不行,哈希函数是单向的。
不会,SHA-1 哈希运算完全在您的浏览器中执行。您的输入数据通过 JavaScript 在本地进行哈希处理,不会发送至任何外部服务。
示例哈希每 10 字符分组显示,空格仅供阅读,比对时请移除。换行也是输入字节的一部分。输入 abc、不加末尾换行,结果为 a9993e3647 06816aba3e 25717850c2 6c9cd0d89d;同样文本后加一个 LF 换行,结果为 03cfd74366 1f07975fa2 f1220c5194 cbaff48451。比对前请核对空格、大小写与换行形式;命令行的 echo 通常会添加末尾换行。
示例哈希每 10 字符分组显示,空格仅供阅读,比对时请移除。本工具使用 UTF-8。输入两个字「中文」,不含引号、空格或末尾换行,结果为 7be2d2d20c 106eee0836 c9bc2b9398 90a78e8fb3。改用其他编码,字节就不同。文件校验码只有在计算的字节完全相同时才会一致,还要核对 BOM 与换行;粘贴解码后的文本,不能保留任意二进制文件的原始字节。
示例哈希每 10 字符分组显示,空格仅供阅读,比对时请移除。在 SHA-1 格式的仓库中,Git 计算的是对象头加内容,不只是文本。blob 对象头包含类型、字节长度与一个零字节。abc 不加末尾换行时,本工具输出 a9993e3647 06816aba3e 25717850c2 6c9cd0d89d,Git blob ID 则为 f2ba8f84ab 5c1bce84a7 b441cb1959 cfc7093b7f。提交对象还包含 tree、parent、作者信息与提交消息等数据;本工具不会重建 Git 对象。