javascript-具有hexDigest输入类型的cryto.createHash sha512
作者:互联网
我正在尝试获得与http://jssha.sourceforge.net/相同的结果
哪里
我有疑问的“测试”一词:
var word = 'testing';
var hex = toHex(word); // '740065007300740069006e006700';
在jssha上,当使用十六进制变量和SHA-512的值选择输入类型作为HEX时,得到以下结果:
6e42b2c2a6351036b78384212774135d99d849da3066264983e495b5f74dc922e3d361b8ea9c8527169757233ed0bd4e56b2c42aab0a21bbcca67219dc53b472
尽管使用nodejs crypto module无法获得相同的结果.
require('crypto').createHash('sha512').update(hex).digest('hex')
输出:
9ad6d9053c6c420fe61ec2fffd094e3a325bc71708e18232fd764a5eb30315e38464e620ef0b55b92fbf6c809838652a72d9412b0398b28d61ca432962451de2
所以我想知道如何使用加密模块获得与jssha相同的结果?
谢谢
解决方法:
如果您使用的是非常标准的utf8,则十六进制的“测试”为74657374696e67.您的toHex方法返回的内容假定为utf16.
对于该哈希,该网站说:
521b9ccefbcd14d179e7a1bb877752870a6d620938b28a66a107eac6e6805b9d0989f45b5730508041aa5e710847d439ea74cd312c9355f1f2dae08d40e41d50
在node.js中执行此操作以哈希十六进制字符串:
require('crypto').createHash('sha512').update(
new Buffer("74657374696e67", "hex")
).digest('hex')
节点为您提供相同的哈希值.哦,这也为您提供了相同的哈希值:
require('crypto').createHash('sha512').update("testing").digest('hex')
标签:node-js,hex,cryptography,sha512,javascript 来源: https://codeday.me/bug/20191102/1988450.html