Hash 生成器
在线 SHA-256 / SHA-512 / SHA-384 / SHA-1 哈希计算工具。 实时更新 · 支持十六进制和 Base64 输出 · 100% 本地运行 · 数据不上传。
算法对比
| 算法 | 输出位数 | 十六进制长度 | 安全状态 | 常见用途 |
|---|---|---|---|---|
| SHA-1 | 160 | 40 | 已弃用 | Git 对象 ID(兼容旧版) |
| SHA-256 | 256 | 64 | 推荐 | TLS、JWT、API 签名、区块链 |
| SHA-384 | 384 | 96 | 推荐 | TLS 1.3、高保证应用 |
| SHA-512 | 512 | 128 | 推荐 | 密码哈希流程、大文件校验 |
常见问题
SHA-256 是什么?适合哪些场景?
SHA-256(安全哈希算法 256 位)是 SHA-2 家族的核心成员,输出 256 位(32 字节)的哈希值,显示为 64 个十六进制字符。它是目前部署最广泛的安全哈希算法。适用场景:数据完整性校验、数字签名、API 请求签名(如 AWS 签名 V4)、区块链交易 ID、Git commit 从 SHA-1 迁移后也支持 SHA-256 模式。所有新应用都建议选择 SHA-256 或更强的算法。
SHA-256 和 SHA-512 有什么区别?
SHA-512 输出 512 位(64 字节)哈希值,对应 128 个十六进制字符,是 SHA-256 的两倍长度。在 64 位 CPU 上,SHA-512 通常比 SHA-256 更快,因为 64 位寄存器可以并行处理更多数据。两者安全性对当前威胁模型均足够,SHA-512 适合对碰撞空间有更高要求的场景(如大文件校验、长期归档)。
为什么 SHA-1 被标记为「已弃用」?
SHA-1 输出 160 位哈希值,已被证明存在碰撞漏洞——2017 年研究人员成功演示了 SHA-1 碰撞攻击(SHAttered 项目)。主流浏览器、CA 机构和软件平台已停止接受 SHA-1 数字证书和代码签名。目前仅可用于无安全要求的校验场景(如 Git 对象 ID 兼容),新应用必须使用 SHA-256 或以上。
Hex 和 Base64 输出格式有什么区别?
两种格式代表同一份二进制哈希数据。Hex(十六进制)使用 0-9 和 a-f 共 16 个字符,每字节变为 2 个字符,是开发者调试最常用的格式。Base64 使用 64 个字符编码,体积比 Hex 小约 25%,常用于 HTTP Authorization 头、JWT Token、以及某些 API 返回值。两者可以互相转换,存储内容完全等价。
这个工具安全吗?我的数据会上传到服务器吗?
完全安全。本工具通过浏览器内置的 Web Cryptography API(window.crypto.subtle)在本地计算哈希,不会将任何输入数据发送到服务器。即使断开网络,工具依然可以正常使用。所有计算均在您的设备上完成。
能直接用 SHA-256 来存储用户密码吗?
不建议。SHA-256 等哈希算法设计目标是「快速」,这在密码存储场景中恰恰是弱点——攻击者可以用 GPU 每秒计算数十亿次哈希进行暴力破解或字典攻击。密码存储应使用专为此设计的慢哈希算法:bcrypt、scrypt、或 Argon2id,它们通过增加计算成本和内存占用让暴力破解不可行。
HMAC 和普通 SHA-256 有什么区别?
HMAC(Hash-based Message Authentication Code)是在 SHA-256 等哈希算法基础上加入密钥的消息认证码算法,格式为 HMAC-SHA256(key, message)。普通 SHA-256 只对数据本身计算摘要,任何人拿到数据都能验证;HMAC 需要持有密钥才能生成或验证,常用于 API 签名(如 Stripe webhook 签名、JWT HS256)、双方认证等场景。