Toolalize

哈希生成器

从任意文本生成 MD5、SHA-1、SHA-256 和 SHA-512 哈希值。比较安全级别并即时复制结果。

哈希算法参考

MD5已破解128 bits文件校验和、旧系统(不用于安全)
SHA-1160 bitsGit 提交 ID、旧版 TLS(已弃用用于认证)
SHA-256良好256 bits密码哈希(bcrypt 种子)、TLS、JWT、API 签名
SHA-512优秀512 bits高安全级别签名、支付 API 的 HMAC-SHA-512

常见问题

这四种都是密码哈希函数,能从任意输入生成固定长度的指纹,但在安全性和输出大小上有所不同。MD5(128 位)和 SHA-1(160 位)被认为已经被破解——碰撞攻击已被证明,不应用于安全目的。SHA-256(256 位)是当前互联网标准,用于 TLS、JWT 签名和大多数密码哈希方案。SHA-512(512 位)为金融 API 和政府系统等高价值目标提供额外的安全裕量。
可以——这被称为碰撞。每个哈希函数在理论上都能对不同的输入产生相同的输出,因为输出比输入短。然而,一个好的哈希函数使得故意找到这种碰撞在计算上不可行。MD5 和 SHA-1 正是因为研究人员找到了有效构造碰撞的方法而被认为已破解。SHA-256 和 SHA-512 目前没有已知的实际碰撞攻击。
不安全——MD5 或 SHA-256(或 SHA-512)单独使用都不适合存储密码。原始哈希函数被设计为快速运行,这正是攻击者利用的:现代 GPU 每秒可以计算数十亿次 MD5 哈希。对于密码,必须使用专门设计的、故意缓慢的算法:bcrypt、scrypt、Argon2id 或 PBKDF2。使用此工具进行校验和验证和 API 签名——不用于存储用户密码。
HMAC(基于哈希的消息认证码)将哈希函数与密钥结合起来生成认证标签。普通哈希验证数据完整性(数据未被更改),而 HMAC 还验证真实性(数据来自持有密钥的人)。HMAC-SHA-256 是 API 请求签名的标准——被 AWS Signature v4、Stripe、Shopify 和几乎所有支付网关使用。计算 HMAC 需要密钥,因此此工具(执行无密钥哈希)无法生成 HMAC 标签,但您可以用它在将负载传递给 HMAC 库之前验证 SHA-256。