HMAC 计算
SHA-1/224/256/384/512 的 HMAC,支持十六进制与 Base64 输出。
使用说明
- 输入密钥与消息,选择摘要算法,立即得到 HMAC 值,可选十六进制(小写)或 Base64 输出。
- 密钥与消息都支持UTF-8 原文或十六进制两种输入模式 —— 对接接口时对方给的 key 常常是十六进制串,直接粘进去不用先转换。
- 实现走浏览器原生
crypto.subtle,不加载任何第三方库,密钥与消息全程留在本机。 - 支持对文件计算 HMAC:拖入文件后边读边算,大文件不会卡死页面。
HMAC 和普通哈希有什么区别?
普通哈希(如 sha256(消息))没有密钥,任何人都能算、也能改。HMAC 在计算时混入密钥,不知道密钥就无法伪造出正确的值 —— 这是它用于接口签名、Webhook 校验的原因。
SHA-1 还能用吗?
不推荐用于安全场景。SHA-1 已被证明存在碰撞,仅保留在这里是为了对接还在用它的老接口。新项目请选 SHA-256 及以上。
同一个密钥每次算出来的结果一样吗?
一样。HMAC 是确定性算法,相同输入永远得到相同输出。如果你需要「每次都不一样」,那要的是带随机盐的签名方案,不是 HMAC 本身。