SHA256算法变为HMAC-SHA256

算法道路千千万,各有千秋,莫要较真

现在很多都原生态支持SHA256,不如乐鑫的调用即用

然而对于别的偏向底层的开发,如需要自己实现算法,也不是不行!


公式为:
        HMAC_SHA256 (k,m)=SHA256(k`⊕opad∥SHA256(k`⊕ipad∥m))

其中:
SHA256 为SHA-256加密算法,其输出散列值长度256-bit;

∥ 拼接操作,将两个字符串拼接在一起;

B Hash函数明文分组长度,SHA-256算法中为512-bit;

k`为密钥(secret key);

m 为要认证的消息;

k` 是从原始密钥 k 导出的另一个密钥(若 k 短于B,则向右填充零,直到与B相同;若k长于B,则对 k 进行一次SHA256散列计算)

opad 内部填充(0x5C5C5C…5C5C,512-bit常量);

ipad 外部填充(0x363636…3636,512-bit常量)

以下是详细展开

假设 ProductSecret产品密钥:DMLMXLEBWOW6Voks                        16个字节

k="DMLMXLEBWOW6Voks"                                
k'=0x444d4c4d584c4542574f5736566f6b73000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000                64字节     512bit

opad=0x5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C          64字节     512bit

ipad=0x36363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636            64字节     512bit

k’⊕ipad = 0x727b7a7b6e7a73746179610060595d45363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636
k’⊕opad = 0x181110110410191e0b130b6a0a33372f5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c

m="123456" = 0x313233343536

k’⊕ipad∥m =
0x727b7a7b6e7a73746179610060595d45363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636313233343536

SHA256(k’⊕ipad∥m)=0x3abace516abbbe349f053a7e8a2f14049762646f70ddb1bc2c6536a7544f7ae6

k’⊕opad∥SHA256(k’⊕ipad∥m)=
0x181110110410191e0b130b6a0a33372f5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c3abace516abbbe349f053a7e8a2f14049762646f70ddb1bc2c6536a7544f7ae6

代入公式手动计算得
SHA256(k’⊕opad∥SHA256(k’⊕ipad∥m))=

4161df4e1022c4e2c4306982877c898bf9f807c886e0e9b59171d26d54407271

4161df4e1022c4e2c4306982877c898bf9f807c886e0e9b59171d26d54407271     

--》在线生成工具HMAC计算、HMAC-MD5、HMAC-SHA1、HMAC-SHA256、HMAC-SHA512在线计算 - 1024Tools

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值