HMAC生成器
使用SHA-1、SHA-256、SHA-384或SHA-512算法生成HMAC哈希签名。用于API开发和数据完整性验证的安全消息认证工具。
什么是HMAC?
HMAC(基于哈希的消息认证码)是一种使用加密哈希函数进行消息认证的机制。它验证消息的数据完整性和真实性,确保消息未被篡改且来自合法发送者。
HMAC如何工作?
HMAC使用加密哈希函数(如SHA-256)将密钥与消息数据结合。该过程以特定方式使用密钥对消息进行哈希处理,生成固定大小的输出,作为消息的指纹和认证标签。
支持哪些算法?
此工具支持使用SHA-1、SHA-256、SHA-384和SHA-512算法生成HMAC。SHA-256在大多数用例中被推荐,因为它提供了出色的安全性和性能平衡。SHA-1在安全关键应用中已被弃用。
HMAC和普通哈希有什么区别?
普通哈希(如SHA-256)仅验证数据完整性——任何人都可以计算它。HMAC在过程中添加了密钥,同时提供完整性和认证。只有拥有正确密钥的方才能生成或验证HMAC,使其对认证目的安全。
HMAC安全吗?
当使用强哈希函数(SHA-256或更高)和足够长的密钥时,HMAC被认为是安全的。安全性取决于底层哈希函数对碰撞和原像攻击的抵抗能力,以及密钥的保密性和长度。
HMAC有什么用途?
HMAC广泛用于API认证(如REST API)、JWT令牌生成、消息完整性验证、安全通信协议(TLS、SSH)、密码存储和数据验证。它对于确保数据在传输过程中未被修改至关重要。
HMAC密钥应该多长?
对于SHA-256,至少使用256位(32字节)密钥。对于SHA-512,至少使用512位(64字节)密钥。更长的密钥提供更好的安全性。密钥应随机生成并保密。切勿使用弱或可预测的密钥。
HMAC和加密有什么区别?
HMAC提供消息认证和完整性但不加密数据——消息仍然可读。加密使数据对未授权方不可读。它们服务于不同目的:HMAC验证真实性,加密提供机密性。
HMAC和数字签名一样吗?
不一样。HMAC使用对称密码学,双方共享相同的密钥。数字签名使用非对称密码学的公钥/私钥对。HMAC更快更简单,但需要安全的密钥分发,而数字签名提供不可否认性。
如何验证HMAC?
要验证HMAC,接收方使用相同的算法、消息和密钥计算HMAC,然后与接收到的HMAC进行比较。如果完全匹配,则消息是真实且未被修改的。始终使用恒定时间比较以防止计时攻击。
什么是HMAC-SHA256?
HMAC-SHA256是使用SHA-256哈希函数的HMAC。它产生256位(32字节)的哈希值,广泛用于Web API、JWT令牌和安全通信。它是目前通用认证中最常用的HMAC变体。
HMAC可以用于密码存储吗?
虽然HMAC可以用于密码存储系统,但不建议单独使用。现代密码存储应使用专门的算法如bcrypt、scrypt或Argon2,这些算法设计为慢速且抗暴力攻击。
如何使用HMAC生成器
使用 SHA-1、SHA-256、SHA-384 或 SHA-512 生成 HMAC 签名,用于消息认证和 API 请求校验。所有哈希运算都在浏览器本地完成,密钥绝不会外发。
- 在消息输入框中输入要签名的消息,例如 Hello, World!
- 在 Secret Key 栏填入你的密钥(占位符示例为 my-secret-key)。
- 在 Algorithm 下拉列表中选择哈希算法:SHA-256、SHA-1、SHA-384 或 SHA-512。
- 复制生成的签名,与 API 对端期望的值进行比对。
- 改动密钥或消息的任意字符,签名都会完全改变——这正是防篡改校验的原理。
两端必须使用完全相同的算法和密钥,哪怕一个字符不同,得到的签名也会截然不同。
相关工具
- 哈希生成器 在浏览器中即时生成MD5、SHA-1、SHA-256、SHA-512哈希值
- 文件哈希校验 本地计算校验MD5、SHA-1、SHA-256、SHA-512文件哈希值
- PDF解密 在浏览器中即时移除PDF文件的密码保护,内置智能暴力密码恢复功能。
- PDF加密 免费在线为PDF文件添加密码保护。使用AES-256加密保护PDF文档,防止未授权访问。100%浏览器端处理,无需上传。
- Basic Auth 头生成器 在线生成 HTTP Basic Authentication 头 — 即时将用户名:密码编码为 Base64 Authorization 头
- 文本加密解密 使用 AES-GCM/AES-CBC 算法安全加密解密文本,基于密码,所有处理在浏览器本地完成,数据绝不离开设备。
- AES加密/解密 AES加密解密工具,支持CBC、CFB、CTR、OFB、ECB模式,Pkcs7/ZeroPadding/NoPadding填充,128/192/256位密钥,Base64输出,自动识别密钥/IV格式
- RSA密钥对生成 生成2048、3072、4096位RSA密钥对,PEM格式输出,含指纹信息。完全在浏览器中运行。