首页 HMAC 生成

HMAC 生成

输入密钥和消息就能得到 HMAC。密钥可以是文字、hex 或 Base64,结果也能和已有签名直接比较。

签名

为什么做

Webhook 和 API 的签名只有在密钥和正文的字节一致时才对得上。一个换行或一处多余空格都会让结果完全不同。

把已有的 hex 或 Base64 贴进去,就能马上看出它和刚算出的签名是否相同。

  1. 01怎么用

    输入消息和密钥。选好算法、输出和换行,签名就会出现。

    把已有签名贴进比较栏,就能看出是否相同。按下全部算法会一起列出七个值。

  2. 02结果示例

    示例使用文字密钥 my-secret-key-123 和一句问候。默认输出是小写 hex。

    如果有换行、结尾换行、BOM 或首尾空格,会在签名下面简短说明。

    输入问候

    算法 SHA-256
    密钥 文字 my-secret-key-123
    输出 hex
  3. 03需要知道的事

    空密钥不会签名。hex 密钥只能是偶数长度的 0-9 和 a-f,Base64 必须能解码。

    API 最常用的是 SHA-256。只有旧系统仍然要求时才选 MD5 或 SHA-1。

常见问题

Q密钥和消息会离开浏览器吗?
A不会。签名在页面上计算,输入也不会保存。
Q可以同时比较 hex 和 Base64 吗?
A可以。无论当前输出是哪一种,比较栏都接受大小写 hex 和 Base64。
Q为什么换行方式会改变结果?
ALF 和 CRLF 的字节不同。对方用 Windows 换行签名时,请选 CRLF。
Q该选哪种算法?
A新的 API 默认用 SHA-256。请按文档里写的名字来选。

这一页怎样算出

这一页用 SHA-1、SHA-224、SHA-256、SHA-384、SHA-512、MD5 或 RIPEMD-160 当中选定的算法计算 HMAC。消息的字节和密钥一起交给该算法。

密钥可以按原文、十六进制或 base64 输入。算出的签名同时显示为十六进制和 base64。换行选 LF 还是 CRLF,会改变参与签名的字节。

比较框用来贴上你已经拿到的签名,看它是否一致。空密钥、奇数长度的十六进制、无法解析的十六进制和无法解析的 base64 都是错误。这里不做 DES、RC2 或 MD4。

计算签名时,密钥和消息留在这个浏览器里。密钥不会送到签名服务器,贴进比较框的签名也不会存到这一页以外。换行改成 LF 或 CRLF 之后,十六进制和 base64 两种结果都在这一页上重新计算。

  • # hmac
  • # sha256
  • # 签名
  • # webhook