Hmac
定义
- MAC(Message Authentication Codes),是一种消息摘要算法,也叫消息认证码算法。
- 消息认证码是一种确认完整性并进行认证的技术。
- 这种算法的核心是基于秘钥的散列函数。
- HMAC中使用的单向散列函数不局限于一种,可以是MD5,SHA1等。
公式
message
就是我们的消息mkey
是密钥||
是级联,其实就是拼接操作ipad
值为0x36,不断循环直至达到散列函数分组长度opad
值为0x5c,不断循环直至达到散列函数分组长度O和+拼起来的符号
这代表异或
密钥处理
- 若密钥长度小于Hash的分组长度
在密钥末尾填充0,直到长度达到Hash的分组长度 - 若密钥长度大于Hash的分组长度
将密钥进行哈希运算,结果作为key
HmacMD5
HmacMD5是一种结合了密钥与MD5哈希函数的消息认证码(MAC)算法。
其实就是把上面公式里的Hash转换成MD5就可以了。
HmacSHA1
同上,把公式里的Hash转换成SHA1就可以了。