node.js加密模块的问题

node.js加密模块的问题,node.js,cryptography,node-crypto,Node.js,Cryptography,Node Crypto,我正在尝试创建一个HMAC,用于使用API进行身份验证 但是,我在使用标准节点加密时遇到了一些问题 请在“身份验证”部分中查看: HMAC_SHA256 ( 13916834993JJHlXeDcFM , 230664ae53cbe5a07c6c389910540729 ) 对这两个值进行哈希运算后,返回值应为:cdbf5cc64c70e1485fcf976cdf36790c2b28cfc28080973ce677cebb6db9681 但是,当我使用加密库时,我似乎无法复制以下内容: cry

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

但是,我在使用标准节点加密时遇到了一些问题

请在“身份验证”部分中查看:

HMAC_SHA256 ( 13916834993JJHlXeDcFM , 230664ae53cbe5a07c6c389910540729 )
对这两个值进行哈希运算后,返回值应为:
cdbf5cc64c70e1485fcf976cdf36790c2b28cfc28080973ce677cebb6db9681

但是,当我使用加密库时,我似乎无法复制以下内容:

crypto.createHash('sha256').update('13916834993JJHlXeDcFM').update('230664ae53cbe5a07c6c389910540729').digest("hex") 
返回

798134a33b4f8af61c85c07b692f907607b03a7b7298faff1f05ec6712006f9c

返回

3a67e4899e1eae579b3191fdde04a19086cf50f71ee497274e23e413b52a0d00
此外,事实上,这两者都是不同的,这也是一个问题。由于某种原因,createHmac(算法,键)方法对我不起作用

crypto.createHmac("sha256", '13916834993JJHlXeDcFM').digest('hex');
应该回来

1edcb16556338085d86656163314ded51d90f297d9c1a67d87d5b00b9fc44eb5
而是返回:

01440fc92c9f2e4923b98cbe0202359b6d2a88ec8b5d54d1690718112f671084

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

在API示例中,
MD5(机密)
是密钥,
nonce+client+key
是您的数据。因此,正确的语法是:

crypto.createHmac("sha256", '230664ae53cbe5a07c6c389910540729').update('13916834993JJHlXeDcFM').digest('hex');
哪些产出:

cdbf5cc64c70e1485fcf976cdf367960c2b28cfc28080973ce677cebb6db9681

尝试在
createHmac
中交换密钥和数据。尝试了该操作后,刚刚收到一个错误。在我看来,createHash和createHmac实际上创建了不同的对象,我似乎在文档中找不到任何东西,尽管这解释了创建的哈希和创建的hmac之间的区别,如果它们都接收相同的算法和密钥参数。我对哈希知之甚少,但是在createHmac中交换密钥和数据返回了预期的输出。无法获得该输出,您可以发布代码吗?mrmayfield:HMAC以一种特殊的方式使用底层哈希函数。如果需要HMAC,则不能仅使用普通的hashfunction@hassansin我可以确认交换密钥和数据会产生预期的字符串。你可以把答案贴出来。马上,谢谢。让位于这个问题的问题是对createHash和createHmac之间差异的根本误解,我认为这是同一功能的不同语法。我一定会读更多的,谢谢你的回答。
cdbf5cc64c70e1485fcf976cdf367960c2b28cfc28080973ce677cebb6db9681