在线 HMAC 生成器

在浏览器中用一条消息和一个密钥,以 SHA-256、SHA-1、SHA-384 或 SHA-512 生成 HMAC 签名。你的密钥始终留在本地。

HMAC 生成器通过 Web Crypto API 完全在你的浏览器中运行。你签名的消息和你输入的密钥绝不会离开你的设备,也不会上传到 ArrayKit。

打开哈希生成器

关于 HMAC 生成器

HMAC 生成器用一个密钥对一条消息签名,产生一个带密钥的哈希——正是你的 API 或 webhook 用来证明负载未被篡改的那种认证码。输入或粘贴消息和密钥,选择 SHA-256、SHA-1、SHA-384 或 SHA-512,即可把签名读回为 hex 和 Base64 两种形式。密钥可以是普通 UTF-8 文本,也可以是一个 hex 编码的字节串,因此它能与你服务器所期望的形式对齐。它为验证 webhook 签名、搭建带签名的请求头、测试某个 API 的 HMAC 方案,或把一个值与库的输出核对的开发者打造。一切都通过 Web Crypto API 在你的设备上计算——消息和密钥绝不离开你的浏览器。

功能特性

如何使用 HMAC 生成器

  1. 选择你的服务使用的哈希算法(SHA-256 最常见)
  2. 输入或粘贴你想认证的消息
  3. 输入密钥并选择 UTF-8 或 Hex 以匹配它的格式
  4. 把 HMAC 读为 hex 或 Base64,并复制你需要的值

示例

输入

message: The quick brown fox jumps over the lazy dog
key: key (UTF-8)
algorithm: SHA-256

输出

hex:    f7bc83f430538424b13298e6aa6fb143ef4d59a14946175997479dbc2d1a3cd8
base64: 97yD9DBThCSxMpjmqm+xQ+9NWaFJRhdZl0edvC0aPNg=

以 "key" 为密钥、对经典的 fox 句子求得的 HMAC-SHA256。

常见错误与故障排除

常见问题

这个 HMAC 生成器计算什么?
它计算一个带密钥的哈希消息认证码:它在一个哈希函数(SHA-256、SHA-1、SHA-384 或 SHA-512)下把你的消息与一个密钥结合,并把得到的签名以 hex 和 Base64 返回。任何拥有相同密钥的人都能重新计算它以验证消息。
我该把密钥输入为 UTF-8 还是 hex?
匹配你的服务存储密钥的方式。如果密钥是普通字符串或口令,用 UTF-8。如果它是一串 hex 字节(随机生成的密钥常见如此),切换到 Hex,以便使用完全相同的字节——两者会产生不同的签名。
我该选哪种 HMAC 算法?
HMAC-SHA256 是大多数 API 和 webhook 的默认选择。若要更长的签名,选择 SHA-384 或 SHA-512;只有当你必须匹配一个较旧的系统时才选 SHA-1,因为 SHA-1 在新设计中被认为较弱。
我如何用它来验证一个 webhook 签名?
把原始 webhook 负载作为消息粘贴进来,把共享的签名密钥作为密钥输入,选择提供方所记载的算法,并把 hex 或 Base64 输出与他们发送的签名请求头比对。匹配即确认负载真实且未被修改。
我的消息或密钥会被上传到任何地方吗?
不会。HMAC 通过 Web Crypto API 在你的浏览器中计算。你签名的消息和你输入的密钥绝不会离开你的设备,也不会发送到 ArrayKit 或任何服务器。
为什么输出同时给出 hex 和 Base64?
不同的服务对相同的 HMAC 字节采用不同的编码——有些请求头用小写 hex,另一些用 Base64。本工具把同一个签名的两种编码都显示出来,因此你可以直接复制你 API 期望的那种格式,无需手动转换。

相关工具

全部 ArrayKit 工具