Hmac

定义

  • MAC(Message Authentication Codes),是一种消息摘要算法,也叫消息认证码算法。
  • 消息认证码是一种确认完整性并进行认证的技术。
  • 这种算法的核心是基于秘钥的散列函数。
  • HMAC中使用的单向散列函数不局限于一种,可以是MD5,SHA1等。

公式


message就是我们的消息m
key是密钥
||是级联,其实就是拼接操作
ipad值为0x36,不断循环直至达到散列函数分组长度
opad值为0x5c,不断循环直至达到散列函数分组长度
O和+拼起来的符号这代表异或

密钥处理

  • 若密钥长度小于Hash的分组长度
    在密钥末尾填充0,直到长度达到Hash的分组长度
  • 若密钥长度大于Hash的分组长度
    将密钥进行哈希运算,结果作为key

HmacMD5

HmacMD5是一种结合了密钥与MD5哈希函数的消息认证码(MAC)算法。
其实就是把上面公式里的Hash转换成MD5就可以了。

HmacSHA1

同上,把公式里的Hash转换成SHA1就可以了。