#️⃣ SHA-1 哈希生成器
从文本生成 SHA-1 哈希。注意:SHA-1 已被弃用于安全用途,请优先使用 SHA-256 或更强算法。
关于 SHA-1 哈希生成器
这个 SHA-1 哈希生成器完全在你的浏览器中运行。在上面的输入框中输入或粘贴任意文本,点击生成即可计算其 SHA-1 摘要——一个 40 位的十六进制字符串。整个计算通过 Web Crypto API 在本地完成,不会上传任何数据。
什么是 SHA-1?
SHA-1(Secure Hash Algorithm 1,安全哈希算法 1)是 NSA 于 1995 年发布的密码学哈希函数。它接受任意长度输入,生成 160 位(20 字节)哈希,通常以 40 字符十六进制字符串呈现。算法以 512 位块为单位处理输入,使用 80 轮运算,包含消息调度扩展和由五个 32 位字组成的 160 位状态。
常见用途
- 文件校验 —— 通过比对发布的 SHA-1 值验证文件完整性(许多发布流水线仍在使用)。
- Git 对象 ID —— Git 用 SHA-1 标识提交、树、blob 和标签对象。Git 正在向 SHA-256 过渡。
- 遗留系统 —— 部分老协议(TLS 1.0/1.1、X.509 证书)仍引用 SHA-1。
- 内容寻址 —— 历史的内容寻址存储系统。
- 基于哈希的查找 —— 非安全场景下的去重和指纹识别。
已知测试向量
你可以用以下标准测试值验证实现的正确性:
sha1("")=da39a3ee5e6b4b0d3255bfef95601890afd80709sha1("abc")=a9993e364706816aba3e25717850c26c9cd0d89dsha1("hello")=aaf4c61ddcc5e8a2dabede0f89f6b39541b1b3c0sha1("The quick brown fox jumps over the lazy dog")=2fd4e1c67a2d28fced849ee1bb76e7391b93eb12
常见问题
SHA-1 可以逆向吗? 不可以。SHA-1 是单向函数,无法从哈希恢复原始输入,只能验证某输入是否会产生已知哈希。
我的输入会上传吗? 不会。所有哈希计算都在你的浏览器中通过 Web Crypto API 完成,文本永远不会离开你的设备。
为什么 SHA-1 被弃用? 2017 年,Google 与 CWI Amsterdam 联合发表 SHAttered 攻击,使用约 9,223,372,036,854,775,808 次运算生成了两个具有相同 SHA-1 哈希的 PDF 文件。这使 SHA-1 不再适用于数字签名和证书。现代系统至少应使用 SHA-256。
支持 UTF-8 吗? 支持。输入会先编码为 UTF-8 字节再哈希,非 ASCII 字符可正确处理。
和 MD5 有何区别? SHA-1 生成 160 位摘要(40 个十六进制字符),MD5 为 128 位(32 个字符)。两者目前都被视为已破解,但 SHA-1 输出空间更大,抵抗实际攻击的时间也更长。