HMAC加密算法
-
介绍
HMAC采用双层哈希和密钥机制,实现简单且安全性高.主要注意选择安全的哈希算法,比如SHA-256,并确保密钥的随机性和长度.
-
计算流程
以选用sha256哈希计算方法为例:
-
需要提前理解的参数
# key: 密钥,计算前需要提供的一个二进制数据
# ipad: 固定值,用于计算"内部"哈希值,0x36重复64次组成的数据
# opad: 固定值,用于计算"外部"哈希值,0x5c重复64次组成的数据
# msg: 消息,希望加密的消息,二进制数据 -
预处理密钥
# 如果key的字节长度大于64,则先对key做sha256哈希计算,得到32字节的预处理密钥结果.
# 如果key的字节长度小于64,则在key后面补0x00,补至64字节,得到64字节的预处理密钥结果.
# 字节长度等于64则直接使用. -
计算内部哈希
# 用上面的预处理密钥结果,与ipad做异或计算.
# 预处理密钥长度是64字节则完全异或计算,32字节则与ipad的前32字节异或计算,并保留ipad的后32字节.
# 得到一个64字节的二进制数据.
# 将msg拼接到上述64字节数据的后面.
# 整体进行sha256哈希计算,得到32字节的内部哈希. -
计算外部哈希
# 用预处理密钥结果与opad做异或计算,跟ipad异或计算是一样的流程.
# 得到一个64字节的二进制数据.
# 将32字节的内部哈希计算结果拼接到上述64字节数据的后面.
# 做一次整体sha256哈希计算,得到哈希值.
# 这个哈希值就是最终的结果.
-
浙公网安备 33010602011771号