Toolify

哈希生成器 (SHA-1、SHA-256、SHA-384、SHA-512)

输入任意文本同时查看四种 SHA 哈希。文件完整性校验、签名生成、API 请求签名调试、密码学学习适用。

未提供 MD5: 自 2004 年起在安全用途上已被攻破, Web Crypto 不再提供。请用 SHA-256 或更强。
SHA-1
 
SHA-256
 
SHA-384
 
SHA-512
 

工作原理

哈希是什么 (与不是什么)

密码学哈希函数把任意大小输入产生固定大小输出 (「摘要」)。同输入总得同摘要。微小输入变化产生天差地别摘要 (雪崩效应)。把摘要逆向找输入对 SHA-256 这样的密码学强函数来说计算上不可行。

哈希不是加密。无密钥, 无解密。常见混淆: 哈希密码 (请用 bcrypt/argon2 — 它们减慢暴力破解)、哈希任意文本然后「解码」(设计上不可能)。

选哪个算法

SHA-256 是现代默认。比特币、TLS 证书、JWT 签名 (HS256)、文件完整性哈希都用。256 位足够任何现实安全需求。

SHA-384 与 SHA-512 是同族更大的变体。SHA-512 在 64 位硬件上有时更快。当协议或标准明确要求时使用。

SHA-1 在安全上已弃用但仍出现在遗留系统 (旧 TLS、git commit 哈希)。新安全关键工作不要用 — 自 2017 年起已演示出碰撞。我们包含它仅为向后兼容。

常见用途

文件完整性: 下载文件和哈希; 本地重新计算哈希; 比对。匹配则文件传输中未被篡改。

Git commit: 每个 commit 的标识符是其内容的 SHA-1 哈希。哈希一条 commit 信息单独无意义 — 需要其余 commit 才能重现。

API 请求签名: HMAC-SHA-256 是 AWS、GitHub 与许多 API 的标准。哈希本身只是 HMAC 的一部分; API 会提供它期望的精确构造。

缓存键: 哈希一个 URL 或参数集得到稳定、定长的缓存键。

常见问题

为什么没有 MD5?

MD5 碰撞自 2004 年起已演示; Web Crypto API 不暴露它。非安全用途 (缓存键、文件去重) 请用 SHA-256 — 仅略慢且无碰撞风险。

可以哈希二进制文件吗?

本工具不直接 — 只接受文本。文件请用系统 shell: macOS/Linux 的 `shasum -a 256 myfile.txt`, Windows 的 `Get-FileHash`。

为什么 SHA-512 比 SHA-256 长?

名字中数字指输出位长: SHA-256 产 256 位 = 64 hex 字符; SHA-512 产 512 位 = 128 hex 字符。两倍长。

两个不同输入会得同一哈希吗?

理论上是 (鸽巢原理), 实践上对当前技术的 SHA-256 不会。SHA-1 碰撞已演示; SHA-256 还没。

可以用本工具哈希密码吗?

不行。密码需慢哈希 (bcrypt、scrypt、argon2) 加盐。纯 SHA-256 太快 — 攻击者每秒可哈希数十亿次。

为什么同文本总得同哈希?

按定义。哈希函数确定性。需要每次不同输出 (如「盐」), 在输入前/后加随机值。

数据会上传吗?

不会。Web Crypto 完全在浏览器运行; 不传输任何东西。

什么是 HMAC, 这是 HMAC 吗?

HMAC 在哈希函数中加入秘密密钥。本工具计算纯哈希; HMAC 请用专用工具或编程库。

相关工具

最后更新: