🔏 HMAC 签名生成

输入待签名字符串与 Secret,生成 HMAC 摘要(Hex / Base64),用于开放平台、Webhook 与支付接口联调。

消息(待签名内容)
密钥 Secret
签名结果

Hex: · Base64:

HMAC 签名是什么?

HMAC(Hash-based Message Authentication Code)在哈希基础上加入密钥,用于验证消息未被篡改且来自持有密钥的一方。开放平台、支付回调、Webhook、物联网设备认证等场景普遍使用 HMAC-SHA256。开发者常搜索「HMAC 在线」「SHA256 签名」「API 签名生成」进行联调对照。

典型应用场景

  • 开放平台:对排序后的参数字符串 + AppSecret 做 HMAC,放在 Header 或 Query。
  • Webhook:如 GitHub X-Hub-Signature-256,用共享密钥验证推送体。
  • 支付与回调:核对第三方通知签名是否与服务端一致。
  • 内部 API:轻量服务间鉴权(仍需 HTTPS 与密钥轮换)。

如何使用本工具

  1. 在「消息」框粘贴待签名字符串(注意编码、排序、是否含 body 原文,以对接文档为准)。
  2. 输入 Secret(AppSecret、Webhook Secret 等)。
  3. 选择算法(推荐 HMAC-SHA256)与输出格式(Hex 或 Base64)。
  4. 点击生成,与文档示例或服务端日志对比。

参数需排序时,可先用 签名字段排序 生成规范串,再回本页签名。

HMAC 与 MD5/SHA 的区别

方式是否带密钥典型用途
MD5/SHA 摘要文件校验、指纹(见 SHA
HMACAPI 签名、Webhook 验签
JWT是(结构化)会话令牌(见 JWT 检查

安全与合规

生产环境密钥禁止提交到代码仓库、截图或公共电脑。本工具在浏览器本地用 Web Crypto 计算,不上传消息与密钥。验签必须在服务端使用相同算法、编码与拼规则则复算。详见 隐私政策

常见问题

为什么和平台给的签名不一致?

常见原因:拼串规则不同(是否 URL 编码、键名大小写、是否包含 body)、字符编码非 UTF-8、输出格式 Hex/Base64 选错、时间戳字段未参与签名。

应该用 SHA1 还是 SHA256?

新系统建议 SHA256 或 SHA512;仅老接口要求时才用 SHA1。

Hex 还是 Base64?

以对接文档为准;部分平台 Header 为 hex 小写,部分为 base64。

相关工具