本工具计算什么
HMAC 使用共享密钥、消息和哈希函数计算消息认证码。默认算法为 HMAC-SHA256,也支持 SHA384 和 SHA512。它不是“把密钥与消息拼接后做一次哈希”,也不会加密或隐藏消息内容。
消息统一按 UTF-8 编码。密钥有独立编码选项:UTF-8 将可见字符作为文本处理,Hex 则把每两个十六进制字符解释为一个原始字节。例如 Hex 密钥 4a656665 与 UTF-8 密钥 Jefe 对应相同字节。Hex 模式拒绝空格、非十六进制字符及奇数位输入,避免按错误编码计算密钥。
示例使用 RFC 4231 的公开测试数据,不是为真实业务生成的新密钥。工具允许使用空密钥复现测试,但不能将空密钥用于实际消息认证。密钥只保留在当前标签页内存中,不写入下载结果,完成后请清空。生产协议的校验仍应在自己的应用中采用经过审查的实现。
可核对的示例
HMAC-SHA256 · UTF-8 · Jefe · what do ya want for nothing?
5bdcc146bf60754e6a042426089575c75a003f089d2739839dec58b964ec3843
如何计算与比较
- 在消息内容中输入需要认证的文本。工具使用其 UTF-8 字节,不删除空格,也不改变换行。
- 输入密钥并选择密钥编码。UTF-8 将密钥作为文本;Hex(十六进制)将每两个十六进制字符解析为一个字节,不接受空格或奇数个字符。
- 选择 HMAC-SHA-256、HMAC-SHA-384 或 HMAC-SHA-512,再点击生成哈希。HMAC 不会自动计算;修改消息、密钥、编码或算法后,需要再次点击生成。
- 使用相同消息字节、密钥字节和 HMAC 算法得到的参考值进行核对。SHA-256、SHA-384、SHA-512 的完整结果分别为 64、96、128 个十六进制字符。
- 复制或下载结果后,点击清空,移除表单中的消息、密钥和计算结果。
示例使用 RFC 4231 的公开测试数据和 UTF-8 密钥 Jefe,不能把它当成应用的私有密钥。TXT、CSV 导出只包含算法和 HMAC 值,不包含消息或密钥。本页一次处理一条文本消息,不支持文件 HMAC 或逐行 HMAC。
限制、隐私与下一步
消息的 UTF-8 数据上限为 10 MiB,解码后的密钥上限同样为 10 MiB;Hex 编码每个字节需要两个十六进制字符。HMAC 在 Web Worker 中计算,可以取消。密钥不会写入浏览器存储,也不会进入 URL 或导出文件。使用结束后请清空表单;释放浏览器内存不等于经过认证的安全擦除。正常的页面和资源请求仍会发送到托管服务器。