【发布时间】:2019-10-29 19:39:39
【问题描述】:
考虑这个 Buffer base64-decoded
const base64decoded = Buffer.from('key', 'base64')
现在下面的两个摘要会有所不同:
crypto.createHmac('sha512', base64decoded)
.update('test')
.digest('base64')
// -> QkooamNoTPVTrhrrxkU5r2vnFU3e7DMSJaukjAEugOiBYFnQyxHQDZvy6zMYesNHHyoG78cgW27K2m9+OPuQ6g==
crypto.createHmac('sha512', base64decoded.toString())
.update('test')
.digest('base64')
// -> zLSdI2dO7o84v41Z5vbxUUyu6FQSTzWOS3OHf7/iijHZUecDKyFeDGzB3Ei22cO9Zcr8a9AiiRiDiBVb0e+kmw==
这真的让我很困惑,我期待相同的输出。在createHmac 中使用Buffer 是如何设法提供不同的输出的?
我应该如何更改我的第二个函数,以便它提供与第一个相同的输出?
我尝试创建一个使用createHmac 的节点包的浏览器端口,一切正常,但window.crypto.subtle.sign(HMAC)也给出了不同的输出,因为我不知道如何使用缓冲区。
【问题讨论】:
标签: node.js cryptography hmac