1. 什么是HMAC
HMAC是一种使用单向散列函数来构造消息认证码(MAC)的方法,其中H就代表了hash的意思。
HMAC中所使用的单向散列函数并不是仅仅局限于一种,任何获得认证的高强度的单向散列函数都可以用于HMAC的计算。
使用单向散列函数SHA-1、SHA-224、SHA-256、SHA-384、SHA-512等构造的HMAC,分别称为HMAC-SHA1、HMAC-SHA224、HAMC-SHA256、HMAC-SHA384、HAMC-SHA512。
2. HMAC的工作步骤

步骤1: 秘钥填充
若秘钥的长度比单向散列函数的分组长度短,则需要在秘钥的末尾以0填充,直到其长度达到单向散列函数的分组长度为止。
若秘钥的长度比单向散列函数的分组长度长,则首先通过单向散列函数计算出秘钥的散列值,然后将这个散列值用作HMAC的秘钥。
步骤2: 填充后的秘钥与ipad进行“异或”处理
ipad是将比特系列00110110(即0x36)不断循环直到达到单向散列函数分组长度的比特系列,其中ipad中的i是inner(内部)的意思。异或运算之后得到的值是一个与单向散列函数分组长度相同,且与“秘钥”相关的比特系列,我们将这一比特系列称为ipadkey。
步骤3: 与消息组合
将ipadkey与消息进行组合,即将ipadkey附加在消息的开头,如下表所示:
| ipadkey | message |
|---|

HMAC是一种使用单向散列函数如SHA-1、SHA-2等创建消息认证码的方法。它涉及秘钥填充、与 ipad 和 opad 的异或处理,以及两次散列计算过程,确保MAC值与消息和秘钥相关联,提供数据完整性和身份验证。HMAC的MAC值长度与选定的散列函数有关。

1万+

被折叠的 条评论
为什么被折叠?



