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哈希计算,得到哈希值.
      # 这个哈希值就是最终的结果.

       

 

 

 

 

 

posted @ 2025-06-17 11:41  CJTARRR  阅读(67)  评论(0)    收藏  举报