🔏 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 与密钥轮换)。
如何使用本工具
- 在「消息」框粘贴待签名字符串(注意编码、排序、是否含 body 原文,以对接文档为准)。
- 输入 Secret(AppSecret、Webhook Secret 等)。
- 选择算法(推荐 HMAC-SHA256)与输出格式(Hex 或 Base64)。
- 点击生成,与文档示例或服务端日志对比。
参数需排序时,可先用 签名字段排序 生成规范串,再回本页签名。
HMAC 与 MD5/SHA 的区别
| 方式 | 是否带密钥 | 典型用途 |
|---|---|---|
| MD5/SHA 摘要 | 否 | 文件校验、指纹(见 SHA) |
| HMAC | 是 | API 签名、Webhook 验签 |
| JWT | 是(结构化) | 会话令牌(见 JWT 检查) |
安全与合规
生产环境密钥禁止提交到代码仓库、截图或公共电脑。本工具在浏览器本地用 Web Crypto 计算,不上传消息与密钥。验签必须在服务端使用相同算法、编码与拼规则则复算。详见 隐私政策。
常见问题
为什么和平台给的签名不一致?
常见原因:拼串规则不同(是否 URL 编码、键名大小写、是否包含 body)、字符编码非 UTF-8、输出格式 Hex/Base64 选错、时间戳字段未参与签名。
应该用 SHA1 还是 SHA256?
新系统建议 SHA256 或 SHA512;仅老接口要求时才用 SHA1。
Hex 还是 Base64?
以对接文档为准;部分平台 Header 为 hex 小写,部分为 base64。
