HMAC 计算器
HMAC-MD5 / SHA1 / SHA256 / SHA512 带密钥计算,全程本地运算。
什么是 HMAC?
HMAC(Hash-based Message Authentication Code,基于哈希的消息认证码)是在哈希算法基础上引入共享密钥的认证机制,标准定义于 RFC 2104。它的核心思路是:把密钥与消息按特定方式组合后送入哈希函数,得到与密钥强绑定的摘要。与普通哈希不同,HMAC 的结果同时取决于密钥和消息,因此既能校验消息完整性,也能证明消息来自持有密钥的发送方。
HMAC 常用于 API 签名、Webhook 回调校验、数据库密码派生等场景。本工具支持 MD5、SHA-1、SHA-256、SHA-384、SHA-512 五种底层哈希:SHA 系列调用浏览器内置的 Web Crypto API 完成,MD5 使用纯 JavaScript 本地实现(注意 MD5 与 SHA-1 已不推荐用于安全敏感场景)。所有计算都在浏览器本地进行,密钥不会离开你的设备。结果以十六进制小写输出,与绝大多数服务端语言的默认输出格式一致,便于直接比对。
使用步骤
- 在「密钥」输入框中填入双方约定的共享密钥;
- 在「消息内容」中粘贴或输入要计算的消息文本;
- 在下拉框中选择哈希算法(与对方约定一致);
- 点击「计算 HMAC」,结果区输出十六进制小写摘要;
- 点击「复制」按钮复制结果,与对方计算结果比对。
常见问题
HMAC 和哈希有什么区别?
普通哈希(如 MD5、SHA-256)不含密钥,任何人可对同一内容算出相同结果;HMAC 在哈希运算中混入共享密钥,只有持有密钥的人才能生成或验证,可用于消息完整性校验与身份认证。
HMAC 的密钥长度有要求吗?
没有硬性要求。规范约定密钥按算法分组长度处理:超过分组长度(如 64 字节)先做一次哈希压缩,不足则补零到分组长度;为安全起见建议密钥至少与摘要长度相当(如 256 位)。
HMAC 计算会在服务器上进行吗?
不会。SHA 系列使用浏览器内置的 Web Crypto API,MD5 使用本地原生实现,密钥与消息全程留在浏览器内,不会上传任何服务器。
为什么计算结果必须与对方一致才有效?
HMAC 是确定性算法:相同密钥 + 相同消息必然得到相同摘要。若双方密钥一致而结果不同,说明消息在传输中被篡改,或其中一方使用的密钥/编码不一致。