HMAC消息认证码原理
时间: 2023-10-26 20:48:24 浏览: 83
HMAC(Hash-based Message Authentication Code)是一种基于哈希函数的消息认证码,用于验证数据的完整性和真实性。
HMAC 的原理可以简单描述为:将密钥和消息一起输入哈希函数(如SHA-256),生成一个固定长度的哈希值。这个哈希值就是 HMAC。只有拥有相同密钥的人才能重新生成相同的 HMAC,因此 HMAC 可以用于验证消息的真实性和完整性。
具体来说,HMAC 的计算过程如下:
1. 选择一个合适的哈希函数 H(如 SHA-256)和一个密钥 K。
2. 对消息 M 进行填充(padding)。
3. 将填充后的消息 M 和密钥 K 输入哈希函数 H 中计算出 HMAC 值。
HMAC = H((K ⊕ opad) || H((K ⊕ ipad) || M))
其中,|| 表示拼接操作,opad 和 ipad 是两个固定的常量,具体定义如下:
opad = 0x5c5c5c5c…
ipad = 0x36363636…
如果密钥 K 的长度小于哈希函数的块长度,则将密钥 K 填充至块长度。
如果密钥 K 的长度大于哈希函数的块长度,则将密钥 K 进行哈希运算,得到新的密钥 K',再将 K' 填充至块长度。
4. 将生成的 HMAC 值与接收到的 HMAC 值进行比较,如果相同,则消息 M 的真实性和完整性得到验证。
HMAC 的优点在于它不仅可以验证消息的完整性,还可以防止对密钥的攻击。由于 HMAC 使用了哈希函数,因此它具有不可逆性和雪崩效应,即使稍微修改了消息或密钥,生成的 HMAC 值也会有很大的变化。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![application/octet-stream](https://img-home.csdnimg.cn/images/20210720083646.png)