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()
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容