在线 HMAC 计算工具

消息编码 浏览器本地计算,数据不会上传服务器
常用签名示例
密钥编码 长度
使用浏览器 CSPRNG(crypto.getRandomValues)生成
哈希算法 输出格式
校验使用恒定时间比较,避免因比较耗时差异泄露信息
输出长度取决于所选哈希算法

计算信息

算法:-
摘要长度:-
输出:-
消息长度:-
密钥长度:-
计算引擎:-
耗时:-
计算位置:-
HMAC 需要密钥参与计算,可同时验证数据完整性与消息来源。
提示:JWT 签名使用 Base64URL(无等号填充,-_ 替代 +/),与标准 Base64 不同,比对时需注意编码差异。
隐私提示:所有计算均在浏览器本地完成,输入内容与文件不会上传到任何服务器。

8 种哈希算法生成与验证 HMAC,密钥消息支持三种编码,恒定时间比较

在线 HMAC 计算工具

HMAC 是带密钥的哈希消息认证码:同样的消息在不同密钥下会得到完全不同的结果,因此它既能验证数据是否被改动,也能确认消息确实来自持有密钥的一方。接口签名、Webhook 回调校验、下载地址防篡改都依赖 HMAC。

核心功能

  • 生成 HMAC:填写消息与密钥,选择哈希算法即可得到认证码。
  • 验证 HMAC:粘贴对方给出的期望值与本地计算结果比对,直接给出签名匹配或不匹配。
  • 随机密钥:可用浏览器安全随机数生成 16、32 或 64 字节密钥,密钥输入框支持显示与隐藏。
  • 常用示例:内置 API 签名与 Webhook 验签两个示例,便于快速理解参数拼装方式。

支持的算法与编码

算法覆盖 HMAC-SHA1、HMAC-SHA256、HMAC-SHA384、HMAC-SHA512 以及 HMAC-SHA3-224、SHA3-256、SHA3-384、SHA3-512 共 8 种,其中 SHA1 会标注为不推荐,默认使用 SHA256。密钥与消息都可以分别按 UTF-8、Hex 或 Base64 解析,输出可选 Hex 或 Base64,这样无论接口文档要求哪种编码都能直接对上。

验证与结果信息

验证模式使用恒定时间比较,避免因比较耗时的差异泄露信息。结果区会显示摘要长度、消息长度与密钥长度,帮助确认密钥是否被截断或多带了空白字符。页面另有提示说明 JWT 签名使用的是 Base64URL,与标准 Base64 在填充与两个字符上的差异,比对时需要注意。

错误处理

密钥或消息按 Hex 解析时,若出现非法字符或长度为奇数会直接指出;按 Base64 解析失败也会明确提示,而不是给出一个错误的签名。消息或密钥为空、验证时未填写期望 HMAC,都会先提醒补全。

使用场景

  • 调试开放平台接口签名,核对本地实现与文档示例是否一致。
  • 验证 Webhook 回调请求头中的签名,确认请求未被伪造。
  • 跨语言开发时比对 PHP、Java、Go、Node 等实现的 HMAC 结果。
  • 为测试环境快速生成一组随机密钥。

隐私与数据安全

HMAC 计算全部在浏览器本地完成,没有服务端计算接口,密钥与消息不会上传服务器,也不会被保存。即便如此,仍建议使用测试密钥而非生产环境的真实密钥。

在线生成与验证 HMAC 消息认证码

HMAC 在哈希计算中引入密钥,既能校验数据完整性又能确认消息来源,是接口签名与 Webhook 验签的常用方案。
  • 支持 8 种算法:HMAC-SHA1、SHA256、SHA384、SHA512 与 SHA3-224/256/384/512
  • 密钥与消息可分别按 UTF-8、Hex、Base64 解析,适配各类接口文档
  • 输出支持 Hex 与 Base64,并显示摘要长度、消息长度与密钥长度
  • 可用浏览器随机数生成 16、32 或 64 字节密钥,密钥支持显示与隐藏
  • 验证模式粘贴期望 HMAC 即可比对,采用恒定时间比较
  • 内置 API 签名与 Webhook 验签示例,并提示 JWT 使用 Base64URL 的编码差异
适合接口签名调试、Webhook 回调验签与跨语言签名结果比对。编码解析失败会直接指出原因。全部计算在浏览器本地完成,密钥与消息不会上传服务器。
评论 0
暂无评论,快来发表第一条评论吧
评论内容不能为空
0/255