HMAC 签名计算

在线计算 HMAC-SHA256 / SHA384 / SHA512 签名:填入消息与密钥即可得到 hex 或 Base64 结果。密钥与消息仅在本页计算,不上传。

文件不上传 单文件最大 512KB

参数

此项为必填,不能为空

这个工具做什么

HMAC(Hash-based Message Authentication Code)是一种「带密钥的哈希」:把消息和密钥一起送进哈希函数,得到一段固定长度的签名。只有持有同一把密钥的人才能算出相同结果——这让它成为校验「消息没被篡改、且来自知道密钥的一方」的标准手段。

典型用途:核对 Webhook 回调签名(GitHub、支付回调、Slack 都用 HMAC)、调试接口鉴权、验证下载文件是否来自可信渠道。本页用浏览器原生 Web Crypto 计算,密钥与消息不上传。

如何使用

  1. 填写消息与密钥 消息是要被签名的内容;密钥是双方约定的口令。两者都按 UTF-8 字节参与运算。
  2. 选择算法与输出格式 SHA-256 最常用(签名 64 个 hex 字符);对端要求 SHA-384/512 时按需切换。输出可选 hex 或 Base64,以对端文档为准。
  3. 与对端签名比对 把本页结果与收到的签名做比对:一致则消息可信。注意大小写与「是否拼接了时间戳」等对端约定。

常见问题

HMAC 和普通哈希(如 SHA-256)有什么区别?

普通哈希任何人都能算;HMAC 多了一把密钥——不知道密钥就无法伪造签名。校验来源与完整性用 HMAC,校验文件是否损坏用普通哈希。

签名结果每次都一样吗?

是。同样的消息 + 同样的密钥 + 同样的算法,结果永远一致。这与「每次都不同」的非对称签名不同。

为什么我的签名和服务器对不上?

常见原因:密钥多了换行或空格、对端拼接了时间戳/请求路径、输出大小写不同、算法或编码不一致。逐一对照对端文档排查。

支持 HMAC-MD5 或 SHA1 吗?

不支持。MD5/SHA1 已不适合安全场景;新系统请用 SHA-256 及以上。若对端还在用旧算法,属于需要推动升级的信号。

密钥安全吗?会被记录吗?

计算在本页浏览器内完成,密钥与消息不会离开设备;页面也不会把它们存进任何存储。

能对大文件做 HMAC 吗?

本工具面向文本消息(≤512KB)。大文件的流式 HMAC 属于另一个工具场景,可在哈希校验工具中关注后续支持。

限制与边界

只支持 SHA-256 / SHA-384 / SHA-512 三种算法,输出 hex(小写)或 Base64。

消息最大 512KB;密钥按 UTF-8 文本处理,不支持二进制密钥输入。

签名比对需要双方约定同一算法、编码与拼接顺序——本工具不替你猜测对端规则。

相关工具