关于在线HMAC生成
hidevtool HMAC 工具用 UTF-8 文本与密钥生成消息认证码,可选 MD5、SHA-1 或 SHA-2 系列算法,以及 Hex/Base64 输出;数据不会上传。
在线HMAC生成能力
密钥是干什么用的?
密钥会和消息一起参与哈希。只有知道同一密钥的一方才能算出相同的 MAC,用来判断消息未被篡改且来自持有密钥的一方。普通 SHA 任何人都能对同样内容重算,无法证明「谁签的」。
哈希算法
- HMAC-SHA256 — 当前 API、Webhook 最常用。
- HMAC-SHA512 / SHA-384 — 规范要求更长 MAC 时使用。
- HMAC-SHA1 — 对接旧系统;新项目不建议。
- HMAC-MD5 — 仅兼容遗留接口,勿用于新密钥或支付场景。
消息与密钥
- 消息与密钥均按 UTF-8 字符串处理,与多数 SDK 示例一致。
- 收发双方须约定相同算法、密钥与输出编码(Hex 或 Base64)。
- HMAC 不加密内容,只提供完整性/来源校验。
输出编码
- 十六进制 — 小写 Hex,便于日志与 JSON 字段。
- Base64 — 传输更短;以接口文档要求为准。
安全使用建议
- 1使用足够长、随机的密钥;生产密钥勿写入公开前端代码。
- 2新接口优先 HMAC-SHA256;人员或合作方变更时轮换密钥。
- 3服务端比对 MAC 建议使用恒定时间比较,降低时序攻击风险。
- 4不同产品、环境勿共用同一密钥。
- 5存密码请用 PBKDF2/bcrypt/Argon2 等,不要只用 HMAC。
常见应用场景
API 请求签名
按网关或支付文档对规范化的请求串或 Body 摘要做 HMAC。
Webhook 验签
用回调密钥重算 HMAC,核对 X-Hub-Signature 等请求头。
JWT HS* 联调
在对称密钥 JWT 集成时,对照 HMAC-SHA256 签名是否正确。
常见问题
- HMAC 有什么用?
- API 签名、Webhook 校验,以及双方约定同一密钥、需要检测报文被篡改的场景。
- 为什么要填密钥?
- 没有密钥时,哈希只能证明内容变没变,无法证明是谁生成的;密钥让验签方只信任持有同一密钥的一端。
- 该选哪种算法?
- 默认选 HMAC-SHA256;若文档写明 SHA-512、SHA-1 或 MD5 再按规范选择。填写消息与密钥后,修改算法或编码时结果会自动更新。
- 输出用 Hex 还是 Base64?
- 以接口文档为准;本工具两种都支持,文档里 Hex 较常见,部分 Header 用 Base64。
- 密钥会上传吗?
- 不会,计算完全在浏览器本地完成。