HMAC 生成器

HMAC 使用密钥对消息做哈希,Webhook 签名、API 鉴权与 AWS Signature V4 都依赖它。本工具在本地计算 HMAC-SHA256、HMAC-SHA512 等,便于对照第三方文档或复现服务端验签逻辑。无密钥的纯摘要请用 hash-generator,JWT 签名场景请用 jwt-generator。

阅读完整指南: JWT 安全入门:解码、验证与常见误区 →

隐私提示:本地解析,不上传服务器。

↓ 在下方输入区粘贴内容,结果会立即显示

消息与密钥

输入消息和共享密钥,HMAC 会随内容实时更新。

密钥
算法
输出格式

输出结果

HMAC 结果

0e8d0d54851504630d2d9d46e991b6c226f66812a81416f7d4ae95d5193e345e

注释说明

HMAC 说明

HMAC 用密钥对消息做认证摘要,常用于 API 签名与 Webhook 校验。密钥请勿泄露或硬编码在客户端。

HMAC 使用密钥对消息做哈希,Webhook 签名、API 鉴权与 AWS Signature V4 都依赖它。本工具在本地计算 HMAC-SHA256、HMAC-SHA512 等,便于对照第三方文档或复现服务端验签逻辑。无密钥的纯摘要请用 hash-generator,JWT 签名场景请用 jwt-generator。

快速开始

  1. 输入消息与密钥

    密钥为空时不输出结果。

  2. 选择算法与格式

    推荐 SHA-256; MD5/SHA-1 仅用于兼容旧系统。

常见场景

GitHub、Stripe 等 Webhook 使用 HMAC 校验请求体完整性。

典型工作流

当开发需要验证消息完整性的功能时,HMAC生成器能快速验证签名是否匹配。例如在接收Webhook时,复制服务端发送的原始消息和密钥,生成HMAC后与请求头中的签名对比,即可判断请求是否被篡改。

调试API鉴权时,先将本地生成的HMAC与文档示例比对,确认算法一致。再替换为自己的测试数据,检查服务端响应。此过程无需编写临时脚本,适合快速迭代调试。注意密钥需与对方保持一致,SHA256为最常见算法。

Webhook 验签

Stripe、GitHub、Slack webhook 用 HMAC-SHA256 对 raw body 签名。本工具复现 digest 对照文档;注意 body 必须 byte-identical(含空格、key order)。json-formatter 会改变 body——验签用原始 bytes。

密钥放 header(X-Signature)而非 body。泄露 HMAC secret 等于允许伪造请求——轮换 secret 并审计日志。

安全

勿在浏览器工具输入生产 webhook secret。用 staging secret 或假 key 学习流程。

配合 hash-generator 对比「错误 secret 的 digest」与官方示例。

示例

示例

Input

message=Towalles, secret=secret-key, SHA-256

Output

Hex digest

FAQ

与 hash-generator 区别?

哈希无密钥; HMAC 需要共享密钥,可防篡改且需保密密钥。

为什么生成的HMAC与服务端不一致?

常见原因包括:1) 密钥不一致,检查是否有空格或编码差异;2) 消息处理方式不同,比如是否去除换行符;3) 算法选择错误,确认双方使用相同哈希算法;4) 输出格式问题,Hex和Base64结果不同但等效。

支持哪些算法?

常见 HMAC-SHA256/512;以工具界面选项为准。

hex 还是 base64 输出?

对接方文档指定;Stripe 等常用 hex。

body 要排序 JSON key 吗?

除非文档要求 canonical JSON;多数 webhook 用 raw body。

secret 上传吗?

否,本地计算。