HMAC算法

hash实验

实验目的

(1)了解Hash函数的特点和基本结构

(2)掌握MD5、SHA-512等算法的原理

(3)HMAC算法的代码实现

实验内容

(Hash函数是消息验证码的一种变形,是一种能够将任意长度的消息压缩到某一固定长度的消息摘要的函数。)

HMAC是基于Hash函数的消息验证码,MAC是一种确认完整性并进行认证的技术。HMAC的MAC算法是hash算法,它可以是MD5, SHA-1或者 SHA-256,他们分别被称为HMAC-MD5,HMAC-SHA1, HMAC-SHA256。

HMAC用公式表示:H[(K+⊕opad)||H(K+⊕ipad)||M]

其中 H:hash算法,比如(MD5,SHA-1,SHA-256) B:块字节的长度,块是hash操作的基本单位。这里B=64。 L:hash算法计算出来的字节长度。(L=16 for MD5, L=20 for SHA-1)。 K:共享密钥,K的长度可以是任意的,但是为了安全考虑,还是推荐K的长度>B。当K长度大于B时候,会先在K上面执行hash算法,将得到的L长度结果作为新的共享密钥。 如果K的长度<B, 那么会在K后面填充0x00一直到等于长度B。 M:要加密的内容 opad:外部填充常量,是 0x5C 重复B次。 ipad:内部填充常量,是0x36 重复B次。 ⊕:异或运算。

计算步骤如下: 1. 将0x00填充到K的后面,直到其长度等于B。 2. 将步骤1的结果跟 ipad做异或。 3. 将要加密的信息附在步骤2的结果后面。 4. 调用H方法。 5. 将步骤1的结果跟opad做异或。 6. 将步骤4的结果附在步骤5的结果后面。 7. 调用H方法。

实验代码

b167e3875d08435d8fa45b23f6d936b5.png

实验结果

350c33bbe76f4c92b5edf71858e1dcdb.png

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值