HMAC 生成器

加密

用 SHA-1/256/384/512 计算 HMAC 签名,用于 API 请求鉴权与消息完整性校验。密钥可按 UTF-8 或十六进制解析,摘要同时给出十六进制与 Base64 两种写法。常与 JWT 的 HS256 签名、支付与回调验签配合使用。签名结果可切换两种编码,便于与文档示例逐字段核对。

就绪
密钥
10 字符
消息
12 字符
HMAC 签名
HMAC-SHA1— — 请输入密钥和消息 — —
HMAC-SHA256— — 请输入密钥和消息 — —
HMAC-SHA384— — 请输入密钥和消息 — —
HMAC-SHA512— — 请输入密钥和消息 — —

关于 HMAC 生成器

HMAC 是把消息和一把密钥一起送入哈希函数得到的认证码,用来同时验证数据完整性和来源身份,广泛出现在 Webhook 验签、API 请求签名和 JWT 的 HS256 算法里。本工具调用浏览器原生的 Web Crypto API,在本地用你输入的密钥对消息计算 HMAC,支持 SHA-1/SHA-256/SHA-384/SHA-512,可选 Hex 或 Base64 输出。密钥和消息都只在你的设备内存里运算,不会发往任何服务器,复制结果即可与服务端签名逐字节比对。密钥和消息都只在设备内存里运算,不会发往任何服务器,是接口安全的本地校验点。例如用密钥 secret 对消息 hello 计算 HMAC-SHA256,得到 64 位十六进制签名,可直接用于 API 请求签名校验。

使用方法

  1. 打开「HMAC 生成器」
  2. 输入待处理的内容并设置参数
  3. 根据需要调整输出选项
  4. 点击「生成」按钮,结果实时显示
  5. 复制或导出结果

使用场景

  • Webhook 验签 — 用平台给的 Secret 重算 HMAC-SHA256,和请求头里的签名比对,确认回调真伪。
  • API 请求签名 — 按厂商规则拼接待签字符串后生成 HMAC,作为接口鉴权头发送。
  • 调试 JWT HS256 — 手动复现 header.payload 的 HMAC,排查 JWT 签名校验失败的原因。
  • 比对算法实现 — 验证后端语言(如 Java、Python)算出的 HMAC 是否与标准一致。
  • 生成幂等键签名 — 对订单号等参数做 HMAC,得到可复算又防篡改的校验值。

常见问题

HMAC 和直接 SHA-256 有什么区别?

普通哈希任何人都能算,无法证明来源;HMAC 引入只有双方知道的密钥,没有密钥就算不出正确结果,因此能验证消息确实出自持密钥的一方。

密钥应该用文本还是 Hex?

取决于服务端约定。多数 Webhook 用 UTF-8 文本密钥,但有些 API 要求把密钥按 Hex/Base64 解码成原始字节再参与运算,两种方式结果不同,务必匹配对端。

该选哪种哈希算法?

SHA-256 是当前默认推荐,兼顾安全与性能;SHA-1 仅用于兼容老系统,不建议新项目使用;需要更高安全裕度时选 SHA-384/512。

比较签名时要注意什么?

生产代码里应使用恒定时间比较(constant-time compare),避免通过响应耗时差异泄露信息;本工具仅用于人工核对,复制后请用安全方式校验。

输出大小写或编码不一致正常吗?

HMAC 原始结果是字节,Hex 大小写、是否 Base64 只是表现形式。先统一编码格式再比对,不要因为大小写差异误判为签名不符。

广告