js逆向之hmac

什么叫hmac
它的全称叫做Hash-based Message Authentication Code: 哈希消息认证码,从名字中就可以看出来这个hmac基于哈希函数的,并且还得提供一个秘钥key,它的作用就是用来保证消息的完整性,不可篡改。基本思想就是,将消息用一个哈希函数加上一个秘钥key生成一个摘要,比如现在很流行的JWT就是基于hmac实现的。

由上可知hmac需要提供三个参数,一个密钥key, 一个消息字符串,一个哈希函数。
js源码qcc为

new d.HMAC.init(t,i).finalize(e)

下断点
跟进init(),判断i为密钥key,那消息字符串为e,
跟进finalize(),可以看到使用了sha512进行运算。
使用python实现

import hmac
hmac.new(bytes(key, encoding='utf-8'), bytes(msg, encoding='utf-8'), hashlib.sha512).hexdigest()

你可能感兴趣的:(js逆向之hmac)