javascript - HMAC sha1 签名与 x-hub-signature 标头不匹配
问题描述
我正在尝试验证 HMAC 签名,但我几乎尝试了所有方法,但无法使其正常工作。下面是我的代码..
const sig = request.headers['x-hub-signature'] || '';
const hmac = crypto.createHmac('sha1', '56e2a9fa00996dd4b026b55a5134df650acb42c83767dd5456eb2f3496ef85a4');
const digest = Buffer.from('sha1=' + hmac.update(JSON.stringify(request.body)).digest('hex'), 'utf8');
const checksum = Buffer.from(sig, 'utf8');
if (checksum.length !== digest.length || !crypto.timingSafeEqual(digest, checksum)) {
return console.log(`Request body digest (${digest}) did not match X-Hub-Signature (${checksum})`);
}
甚至内容类型也是 application/json .. 那么请有人帮我解决这个问题吗?
解决方案
得到了答案..需要base64而不是十六进制转换:)
推荐阅读
- r - 尝试使用线性模型函数 lm() 时出错
- django - 如何处理组之间的数据流?(姜戈)
- python - Python 在另一个 Python .py 文件中定义一个类方法
- html - 使用 Leaflet Search 插件搜索 Shapefile
- python - ImportError 与 keras.preprocessing
- flutter - 颤振:StreamSink
无法从函数“chuckDataSink”返回,因为它的返回类型为 StreamSink >? - python - 如何在熊猫数据帧中使用 re.sub
- r - R - 最小二乘均值对比单向方差分析
- excel - 通过条件格式每隔 n 行比较两个单元格
- c# - 如何订阅 Blazor.Radzen DialogService onClose 事件