HMAC 消息认证码
使用 MD5、SHA-1、SHA-2、SHA-3 或 SM3 以密钥计算文本的 HMAC;密钥单独输入,不随工作流保存。
本地处理
文件只在当前浏览器处理;关闭或清空后不保留。
输入文本
输入或粘贴要处理的文本
调整设置
可调整算法、密钥格式、输出格式
开始处理
在本机浏览器中处理,可随时取消
工具介绍
用密钥计算文本的 HMAC,例如许多接口和 Webhook 要求的 HMAC-SHA256 签名。服务器提示签名错误时,可以自己对完全相同的字符串签名来排查;收到 Webhook 时,也可以用它核对签名。
支持基于 MD5、SHA-1、SHA-2、SHA-3 和 SM3 的 HMAC。密钥可以是文本、十六进制或 Base64,结果可输出为十六进制或 Base64。最多处理 1 MB,在浏览器中完成,文本和密钥不上传,密钥也不随工作流保存。
使用步骤
- 在“文本”中填入待签名的内容,在“密钥(不随工作流保存)”中填入密钥;也可以点击“使用示例”载入示例请求串和密钥。
- 选择“算法”(默认 HMAC-SHA256)和“密钥格式”。
- 选择“输出格式”:十六进制小写、十六进制大写或 Base64。
- 点击“运行”,预览结果并下载为 hmac.txt。
格式与限制
- 输入
- 文本
- 输出
- 纯文本
- 大小上限
- 1 MB
- 可调设置
- 算法;密钥格式(文本、十六进制、Base64);输出格式(十六进制小写、十六进制大写、Base64)
- 隐私
- 文本与密钥只在当前浏览器会话中处理,不上传;密钥作为输入提供,不会随工作流或配方保存。
- 费用
- 免费,无需注册
常见问题
为什么算出的 HMAC 和服务器的不一致?
待签名内容必须逐字节相同:检查空格、换行、参数顺序和 URL 编码。文本按 UTF-8 计算,“文本”框里的所有内容都参与计算,包括末尾的换行。
密钥格式什么时候选十六进制或 Base64?
服务商以十六进制或 Base64 提供密钥,并要求先解码再使用时,选择对应的格式;否则按“文本(UTF-8)”使用。同样的字符按不同格式解析,得到的密钥不同,HMAC 也就不同。
密钥里的空格和换行会保留吗?
密钥末尾的一个换行会被去掉,因为它几乎不会是密钥的一部分;空格等其他字符都会保留。
结果该选十六进制还是 Base64?
两者是同一组字节的不同写法,所以正确的 HMAC 在两种格式下看起来完全不同。按接口文档选择即可;这里的 Base64 使用标准字母表,末尾带 = 填充。
HMAC 和把密钥与文本拼起来再哈希一样吗?
不一样。HMAC 按固定的结构把密钥分两次混入计算,结果与对“密钥 + 文本”直接计算 MD5 或 SHA-256 不同。只需要普通哈希时,请使用“哈希摘要(MD5 / SHA / SM3)”。
相关工具
哈希摘要(MD5 / SHA / SM3)
计算文本、十六进制或 Base64 输入的 MD5、SHA-1、SHA-2、SHA-3、Keccak、RIPEMD-128/160/256/320、SM3、BLAKE2、BLAKE3 摘要,可逐行计算。
文件校验值
计算最多 50 个任意类型文件的 MD5、SHA-1、SHA-256、SHA-512、SHA3-256、SM3、BLAKE3、CRC-32 或 xxHash64,流式读取,大文件也可处理。
RSA / SM2 加解密与签名
用 RSA 密钥(PEM:PKCS#1、PKCS#8、公钥或证书)或 SM2 密钥(十六进制或 PEM)加密、解密、签名或验签;密钥只在浏览器中使用,不随工作流保存。
JWT 签发
以 HS、RS、PS、ES 或 EdDSA 算法将 JSON 载荷签发为 JWT,可添加签发与过期时间;密钥单独输入,不随工作流保存。
JWT 校验
用密钥、公钥、证书或 JWK 校验 JWT 签名,并可检查过期与生效时间;拒绝未签名的令牌,以及以公钥充当 HMAC 密钥的令牌。
凯撒密码与摩斯电码
凯撒密码(自定义位移)、ROT13、ROT47、Atbash 的加密与解密,以及国际摩斯电码的编码与解码。