HMAC 是带密钥的哈希消息认证码:同样的消息在不同密钥下会得到完全不同的结果,因此它既能验证数据是否被改动,也能确认消息确实来自持有密钥的一方。接口签名、Webhook 回调校验、下载地址防篡改都依赖 HMAC。
算法覆盖 HMAC-SHA1、HMAC-SHA256、HMAC-SHA384、HMAC-SHA512 以及 HMAC-SHA3-224、SHA3-256、SHA3-384、SHA3-512 共 8 种,其中 SHA1 会标注为不推荐,默认使用 SHA256。密钥与消息都可以分别按 UTF-8、Hex 或 Base64 解析,输出可选 Hex 或 Base64,这样无论接口文档要求哪种编码都能直接对上。
验证模式使用恒定时间比较,避免因比较耗时的差异泄露信息。结果区会显示摘要长度、消息长度与密钥长度,帮助确认密钥是否被截断或多带了空白字符。页面另有提示说明 JWT 签名使用的是 Base64URL,与标准 Base64 在填充与两个字符上的差异,比对时需要注意。
密钥或消息按 Hex 解析时,若出现非法字符或长度为奇数会直接指出;按 Base64 解析失败也会明确提示,而不是给出一个错误的签名。消息或密钥为空、验证时未填写期望 HMAC,都会先提醒补全。
HMAC 计算全部在浏览器本地完成,没有服务端计算接口,密钥与消息不会上传服务器,也不会被保存。即便如此,仍建议使用测试密钥而非生产环境的真实密钥。
评论 0