HMAC 签名生成

HMAC 签名生成,支持 SHA-1 到 SHA-512

浏览器内运算HMAC Generator工具型03编码与加密

什么是HMAC 签名生成

HMAC 生成工具用共享密钥对内容计算带密钥的摘要,同时输出十六进制与 Base64 两种编码,支持 SHA-1、SHA-256、SHA-384、SHA-512。常用于调试开放平台与支付接口的签名,计算在本地完成。

怎么用HMAC 签名生成

  1. 1把按平台规则拼接好的待签名串粘贴到左侧。
  2. 2填入共享密钥。
  3. 3选择摘要算法(多数平台用 SHA-256)。
  4. 4按接口要求取十六进制或 Base64 结果。

在代码里怎么实现?

一次性操作用上面的工具,重复性工作建议固化到脚本或项目里。

# 十六进制
echo -n "payload" | openssl dgst -sha256 -hmac "secret"

# Base64
echo -n "payload" | openssl dgst -sha256 -hmac "secret" -binary | base64

常见错误与排查

现象成因修复
签名与服务端不一致待签名串的拼接规则不一致:参数排序、是否包含空值、分隔符、是否 URL 编码。严格按平台文档重现拼接过程,并打印出双方实际参与签名的字符串逐字符比对。
中文参数导致签名不一致两端字符编码不同(UTF-8 与 GBK)。统一按 UTF-8 编码后再计算。

常见问题

HMAC 和普通哈希有什么区别?+

普通哈希任何人都能计算,无法证明来源;HMAC 引入了共享密钥,只有持有密钥的一方才能生成正确的签名。因此 HMAC 既能校验内容完整性,也能证明请求来自合法调用方。

密钥会被上传吗?+

不会。密钥只作为参数传给浏览器的 Web Crypto 接口,用完即随页面内存释放,不写入 localStorage、也不发送请求。

相关工具

全部工具