跳到主要内容

HMAC 生成器

HMAC-SHA256/384/512 带密钥签名

使用 Web Crypto(HMAC)在本地计算消息认证码;密钥与内容均不上传。需 HTTPS 或 localhost 安全上下文。

为什么需要 HMAC 生成

验签、Webhook 校验、接口防篡改,常常要用 HMAC:用一把密钥给消息算出一个「带密钥的摘要」,对方用同一把密钥重算比对,一致才说明消息没被改、来源可信。光发明文或裸哈希都不够——HMAC 把密钥揉进计算过程。

本工具用浏览器原生 Web Crypto 生成 HMAC(SHA-256/1/512,输出 hex/base64/base64url),输入消息和密钥即可出签名。

概念与公式

HMAC(Hash-based Message Authentication Code)结构:

HMAC(K, m) = H( (K ⊕ opad) ∥ H( (K ⊕ ipad) ∥ m ) )

其中 H 是哈希(SHA-256 等),K 是密钥,opad/ipad 是固定的填充常量。它结合密钥与哈希,既有完整性又有认证。

本工具参数:

  • 算法:SHA-1 / SHA-256 / SHA-512(推荐 256 及以上)。
  • 格式:hex(十六进制)、base64、base64url。
  • 密钥 / 消息:任意文本(按 UTF-8 处理)。

注意:HMAC 依赖 Web Crypto(crypto.subtle),需在 HTTPS 或 localhost 安全上下文下使用;HTTP 明文站点无法运行,属浏览器安全限制。

细分场景

  • Webhook 校验:GitHub / 支付回调常用 HMAC 验真。
  • 接口防篡改:客户端和服务器共享密钥,对请求体签名。
  • 令牌完整性:给短时 token 加 MAC 防伪造。

怎么用本工具

填消息、填密钥,选算法与输出格式,点「计算」按钮,签名即时显示,复制即用。可切换不同算法对比长度。

常见场景与实例

例:校验 GitHub Webhook GitHub 用 X-Hub-Signature-256: sha256=... 头,把请求体用你的 secret 算 HMAC-SHA256,与头部比对即可确认来源。

相关工具:JWT 生成API Key 生成

隐私说明

全程浏览器本地用 Web Crypto 计算,不联网、不上传你的消息与密钥;密钥仅用于本次计算,不保存。

常见问题

HMAC 和单纯哈希有什么区别?
哈希(如 SHA256)只算数据摘要;HMAC 在哈希基础上混入密钥,只有持有密钥的一方才能复现,因此能同时验证完整性和来源,常用于接口鉴权。
密钥怎么填?
填你的共享密钥(字符串或十六进制)。发送方和接收方用同一密钥计算 HMAC 并比对,一致才放行。密钥通过本工具本地参与计算,不会上传。
支持哪些算法?
SHA-256、SHA-384、SHA-512 三种(Web Crypto 原生支持)。消息与密钥的编码可选 UTF-8 文本或十六进制。
Webhook 校验怎么用?
很多平台(如 GitHub、Stripe)在请求头放 X-Hub-Signature-256: sha256=xxx。你用本工具以同一密钥对请求体算 HMAC,与安全头比对即可确认请求真实未被篡改。