HMAC算法


简介

HMAC(Hash-based Message Authentication Code)即基于哈希的消息认证码,是一种通过将哈希函数与密钥结合来实现消息完整性验证和身份认证的密码学技术。它的核心优势在于能够确保消息在传输过程中未被篡改,同时验证消息的发送方身份。

实现原理

在这里插入图片描述

HMAC的实现可由公式描述:

HMAC(K,M)=H[(K^-1 XOR opad)|| H[(K^-1 XOR ipad) || M] ]

其中

  • K为原始密钥,K-1为预处理后的密钥
  • M为消息,H为哈希函数
  • XOR为异或,||表示拼接
  • ipad是0x36重复多次的结果,长度取决于哈希函数的分组长度,比如,哈希算法是MD5,则ipad的长度为512
  • opad是0x5c重复多次的结果,长度同ipad一样。

密钥预处理

  1. 如果密钥key小于哈希值长度,则在key的左边填充若干个0,得到预处理后的密钥K-1
  2. 如果密钥大于哈希值长度,则计算密钥key的哈希值为K-1

实现步骤:

  • 密钥预处理得到K-1
  • 计算 K^-1 XOR opad 的哈希值
  • 计算 K^-1 XOR ipad || M后的哈希值
  • 最后拼接前面两个结果得到摘要HMAC。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值