MD5 / SHA 哈希生成器

在线计算 MD5、SHA-1、SHA-256、SHA-384、SHA-512 哈希或 HMAC 签名,输入支持 UTF-8、UTF-16、Latin-1、Hex、Base64,输出可选 Hex 或 Base64。

哈希是单向运算,无法解密。HMAC 会加上一把密钥,常用于 API 请求与 Webhook 的签名验证。

文件只在你的浏览器中读取,不会上传。

哈希是什么?

哈希(Hash)会把任意长度的数据计算成一串固定长度的“指纹”。同样的输入一定得到同样的结果,只要改一个字符,结果就会完全不同,而且无法从结果反推出原文。常用来检查文件是否完整、比对数据是否被修改、生成缓存的标识等。

如何使用

  1. 选择算法,或选“全部算法”一次算出全部结果。
  2. 在左边输入内容。开启“自动计算”时,停止输入后会自动生成结果。
  3. 按需调整“输入编码”与“输出格式”,或启用 HMAC 并输入密钥。

算法对比

算法长度(Hex)适合用途
MD532 个字符文件校验、缓存 key;已不安全,不要用在安全相关场景
SHA-140 个字符兼容旧系统(例如 Git);已不建议用在安全相关场景
SHA-25664 个字符目前最常用,适合大多数场景
SHA-384 / SHA-51296 / 128 个字符需要更长结果的场合

HMAC 是什么?

HMAC 是“加上密钥的哈希”,只有知道密钥的人才能算出相同结果。很多服务用它来签名 API 请求、验证 Webhook 确实来自对方,例如支付平台、GitHub、LINE 都使用 HMAC-SHA256。启用 HMAC 后输入密钥即可计算;密钥可以是普通文本、Hex 或 Base64。

输入编码与输出格式

示例

文件哈希与比对

常见问题

哈希可以解密吗?

不行。哈希是单向运算,不存在“解密”。网上所谓的“MD5 解密”,其实是用大量常见字符串事先算好的结果来比对,所以简单的密码很容易被查出来。

为什么和其他工具算出来的结果不同?

通常是输入内容有细微差异:多了空格或换行、换行符不同(Windows 的 CRLF 与 Unix 的 LF),或是文本编码不同。请确认输入完全相同,并使用相同的输入编码。

可以用 MD5 或 SHA-256 存储用户密码吗?

不建议。这些算法计算很快,攻击者也能快速大量尝试。存储密码应使用专为密码设计的 bcrypt、scrypt 或 Argon2。

HMAC 密钥会被保存吗?

不会。计算在你的浏览器中完成;本站会记住你的输入与设置,但 HMAC 密钥刻意不记忆,刷新后需要重新输入。