1

我正在尝试创建一个 HMAC 用于使用 API 进行身份验证。

但是,我遇到了标准节点加密的一些问题。

查看“身份验证”部分下的此示例:

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(algorithm, key) 方法对我不起作用。

crypto.createHmac("sha256", '13916834993JJHlXeDcFM').digest('hex');

应该返回

1edcb16556338085d86656163314ded51d90f297d9c1a67d87d5b00b9fc44eb5

但改为返回:

01440fc92c9f2e4923b98cbe0202359b6d2a88ec8b5d54d1690718112f671084

我正在尝试使用与上面列出的 API 相关的库来调试我在身份验证中收到的错误,但似乎在加密库中遇到了一些错误,这使我无法完成很多有用的调查。

4

1 回答 1

2

在 API 示例中,MD5 ( secret )是键,nonce + client + key是您的数据。所以正确的语法是:

crypto.createHmac("sha256", '230664ae53cbe5a07c6c389910540729').update('13916834993JJHlXeDcFM').digest('hex');

输出:

cdbf5cc64c70e1485fcf976cdf367960c2b28cfc28080973ce677cebb6db9681
于 2015-08-09T22:45:55.300 回答