免费 HMAC 文本计算 · UTF-8 消息与密钥摘要 · 萤炬工具箱 · 工具说明与使用指南
免费 HMAC 文本计算 · UTF-8 消息与密钥摘要 · 萤炬工具箱
适用场景与相似需求
在 HTTPS 或 localhost 安全上下文复现测试签名,核对 UTF-8 消息与密钥;不要提交生产凭据,摘要输出不代表协议认证已成功。
HMAC-SHA 在线计算器用共享密钥和消息生成认证码,支持 SHA-256、SHA-512、SHA-384 与 SHA-1,并将结果输出为小写十六进制。它适合核对接口签名样例、Webhook 验证规则以及排查两端签名不一致的问题。与直接对消息求哈希不同,HMAC 同时需要密钥;与加密不同,它不能把摘要反解回原文。密钥和消息都按 UTF-8 文本使用,在浏览器 Web Crypto 中计算,运行环境需要 HTTPS 或 localhost 等安全上下文。
使用步骤
- 按对接协议选择摘要算法,默认 HMAC-SHA-256。不要因为另一种算法输出更长就自行更换,接收方必须使用同一约定。
- 把示例密钥替换为本次需要校验的密钥文本,再在消息框填入双方约定的完整待签字符串,注意顺序、空格与换行。
- 输入或算法变化会自动触发异步计算,等待结果区更新并查看有无错误提示;没有可用结果时不要把上一次抄下的摘要当成本次输出。
- 点击复制 Hex,与对接方的十六进制结果比较。若协议要求 Base64 或原始字节,应在适当的后续步骤转换表示形式。
功能与限制
- 初始密钥 secret 只是示例,不能照抄为生产密钥。密钥输入不是密码保险箱,不要在共享设备或不可信环境展示真实凭据。
- 新协议通常优先考虑 SHA-256 等现代选择;已有 HMAC-SHA-1 协议的兼容与迁移应由协议双方明确约定,不可随意替换算法。
- 认证码与密钥不能一起公开。即使计算本地完成,截图、剪贴板和随后粘贴的目的地仍可能暴露信息,分享调试结果前应脱敏。
常见问题
- 密钥填十六进制字符串时,会自动解码成字节吗?
- 不会。密钥与消息都会直接经过 UTF-8 编码,例如密钥 6162 被视为四个字符,不是字节 0x61、0x62。若服务端配置使用 Hex 或 Base64 保存二进制密钥,必须先弄清真实密钥字节,本页没有密钥编码切换选项。
- 消息为空可以算吗,密钥为空又会怎样?
- 有非空密钥时可以计算空消息;密钥和消息都为空则直接不计算。仅消息非空、密钥为空时,页面仍会尝试导入密钥,但 Web Crypto 可能拒绝零长度密钥并显示异常,不能保证这种情况照常成功,实际接口也应使用约定的有效密钥。
- 为什么出现 crypto.subtle 相关错误?
- HMAC 依赖浏览器 Web Crypto,需要支持该能力的浏览器和安全上下文。优先检查是否通过 HTTPS 或 localhost 打开,避免普通 HTTP 页面;再查看页面原始错误信息。复制权限问题与计算接口不可用是两种不同故障。
- 同一份 JSON 为什么和服务端签名对不上?
- HMAC 针对准确字节而不是 JSON 的语义。字段顺序、缩进、换行、转义方式、末尾空格,以及是否还拼了时间戳和请求路径,都会改变结果。工具不帮你排序字段、压缩 JSON 或构造某个平台的签名串,应先按协议整理消息再输入。
- 输出长度是多少,支持批量文件或服务器计算吗?
- SHA-1、SHA-256、SHA-384、SHA-512 分别输出 40、64、96、128 个 Hex 字符。本页只处理当前密钥和一段消息,没有文件选择与批量队列,也不把密钥提交到计算接口;未设置固定消息长度上限,但大消息仍受本机内存与性能影响。
留言板
0 条留言对话,从你开始
还没有留言。分享一个想法,或只是打声招呼。