我正在尝试创建一个HMAC,用于使用API进行身份验证。
但是,我遇到了标准节点加密的一些问题。
在身份验证部分下查看此example:
HMAC_SHA256 ( 13916834993JJHlXeDcFM , 230664ae53cbe5a07c6c389910540729 )
哈希这两个值应该给我一个返回值:cdbf5cc64c70e1485fcf976cdf367960c2b28cfc28080973ce677cebb6db9681
然而,当我使用加密库时,我似乎无法复制这个:
crypto.createHash('sha256').update('13916834993JJHlXeDcFM').update('230664ae53cbe5a07c6c389910540729').digest("hex")
返回
798134a33b4f8af61c85c07b692f907607b03a7b7298faff1f05ec6712006f9c
和
crypto.createHmac("sha256", '13916834993JJHlXeDcFM').update('230664ae53cbe5a07c6c389910540729').digest('hex');
返回
3a67e4899e1eae579b3191fdde04a19086cf50f71ee497274e23e413b52a0d00
此外,这些都不同的事实也是一个问题。由于某种原因,createHmac(算法,密钥)方法对我不起作用。
crypto.createHmac("sha256", '13916834993JJHlXeDcFM').digest('hex');
应该返回
1edcb16556338085d86656163314ded51d90f297d9c1a67d87d5b00b9fc44eb5
但是返回:
01440fc92c9f2e4923b98cbe0202359b6d2a88ec8b5d54d1690718112f671084
我正在尝试使用与上面列出的API相关的库来调试我在身份验证中收到的错误,但似乎遇到了一些错误,因为加密库使我无法获得更多错误有用的调查。
答案 0 :(得分:1)
在API示例中,MD5 ( secret )
是关键,nonce + client + key
是您的数据。所以正确的语法是:
crypto.createHmac("sha256", '230664ae53cbe5a07c6c389910540729').update('13916834993JJHlXeDcFM').digest('hex');
输出:
cdbf5cc64c70e1485fcf976cdf367960c2b28cfc28080973ce677cebb6db9681