免费注册

HMAC 签名生成

用密钥给消息签名,得到 Hex 或 Base64 格式的 HMAC。

关于HMAC 签名生成

HMAC 签名生成用来核对接口签名:支付接口、云服务 API、钉钉群机器人的加签、GitHub Webhook 回调,都用 HMAC(多数是 HMAC-SHA256)证明请求没被篡改。签名对不上时,把待签名字符串和密钥填进来,算出的结果和你的代码、对方文档里的示例一比,就知道问题出在哪一边。

密钥可以按文本、Hex 或 Base64 填写,各家平台给的密钥格式不一样;哈希算法可选 SHA-256、SHA-1、SHA-384、SHA-512 和 MD5;结果输出 Hex 或 Base64,和对方要求的格式对上即可。签名不一致,十有八九是待签名字符串不同:参数顺序、多出来的换行、URL 编码或者字符编码。计算全部在浏览器里完成,密钥不会离开你的设备。

HMAC 签名生成怎么用

  1. 1
    填待签名字符串

    粘贴要签名的原文,末尾不要多出空格或换行。

  2. 2
    填密钥

    输入密钥,并选它是文本、Hex 还是 Base64。

  3. 3
    选算法

    一般用 SHA-256,也可以选 SHA-1、SHA-384、SHA-512 或 MD5。

  4. 4
    复制签名

    选 Hex 或 Base64 输出,和期望的签名对比。

为什么用熊仔工匠

  • 五种哈希算法

    HMAC-SHA256、HMAC-SHA1、HMAC-SHA384、HMAC-SHA512、HMAC-MD5。

  • 密钥格式灵活

    文本、Hex、Base64 三种写法都能直接填。

  • 两种输出格式

    Hex 或 Base64,按接口要求选。

  • 密钥不外传

    在浏览器里计算,不上传也不保存。

常见问题

HMAC 签名生成常见问题

HMAC 签名是什么意思?
用密钥和哈希函数对消息算出的签名。只有拿到同一个密钥才能算出同样的值,接收方据此判断消息是真的、没被改过。
算出的签名和接口要求的不一样怎么办?
先逐字核对待签名字符串,参数顺序、空格、换行、URL 编码都会改变结果;再确认密钥是按文本、Hex 还是 Base64 填的,以及对方要的是 Hex 还是 Base64。把两个字符串放进文本 Hex 编码转换,看不见的空格、换行一目了然。
HMAC-SHA256 和 SHA-256 一样吗?
不一样。SHA-256 只对消息做哈希,HMAC-SHA256 按固定的方式把密钥混进去计算。把密钥直接拼在文字后面再算 SHA-256,得到的是另一个值。只要不带密钥的 SHA-256,用哈希加密 MD5 / SHA即可。
平台给的密钥是 Base64,要先解码吗?
不用。密钥格式选 Base64,就会按解码后的字节参与计算;如果当成普通文本填,算出的签名就不一样了。
密钥放在这里安全吗?
安全。HMAC 在你的浏览器里计算,不上传、不保存,密钥不会到我们的服务器。
把HMAC 签名生成分享给朋友打开浏览器就能用,对方不注册也能先试。

相关工具

HASH 哈希加密 MD5 / SHA一次算出文字的 MD5、SHA-1、SHA-256、SHA-512 和 SM3。
TIME Unix 时间戳转换Unix 时间戳与日期时间互转,同时显示本地时间和 UTC。
U+UNI Unicode 编码转换文字与 \u 转义、&#; 编码、U+ 码点、UTF-8 字节互转。
AES AES 加密解密用 AES(GCM、CBC、CTR 模式)加密或解密文字。
&;HTML HTML 实体编码转换把文字转成 HTML 实体,或把实体还原成文字。
JWT JWT 解析解析 JWT 的头部和载荷,检查过期时间和签名。
01BIN 进制转换数字在二进制、八进制、十进制、十六进制等进制之间转换。
BASE Base32 / Base58 编码Base32、Base58、Base85、Base16 的编码与解码。