求教nodejs怎么对密码进行加盐的hash加密

求教nodejs怎么对密码进行加盐的hash加密,第1张

以前java项目最近打算用node.js重写,但是加密这里实在没搞定。java中加密是:1024次加盐sha-1加密,

一个例子:salt:47998d63768aa877,密文:bef36ba826b045a7c5e536a2f7131a6c232eee36,明文:yunstudio2013

下面是java代码:

private static byte[] digest(byte[] input, String algorithm, byte[] salt, int iterations) {

try {

MessageDigest digest = MessageDigest.getInstance(algorithm)

if (salt != null) {

digest.update(salt)

}

byte[] result = digest.digest(input)

for (int i = 1i <iterationsi++) {

digest.reset()

result = digest.digest(result)

}

return result

} catch (GeneralSecurityException e) {

throw Exceptions.unchecked(e)

}

}

我在js里面是这么干的,但是结果一直不对,代码如下:

//bef36ba826b045a7c5e536a2f7131a6c232eee36

var hash = crypto.createHmac("sha1", “47998d63768aa877”).update(“yunstudio2013”).digest(“hex”)

for (var i = 1i <1024i++) {

hash = crypto.createHmac("sha1", “47998d63768aa877”).update(hash).digest(“hex”)

console.log(hash)

}

第一步生成md5 hash串:

var reader = new FileReader()

reader.onload = function(callback) {

var md5 = rstr2hex(binl2rstr(binl_md5(reader.result, reader.result.length)))

}

document.getElementById("xxx").value=md5

第二步:获取生成的md5值

var md5value = document.getElementById('xxx').value

hash模式是监听 hashchange 事件来实现的。

hash是监听 popstate 事件来实现的,但有点小问题需要处理一下。

history.replaceState 和 history.pushSstate 不触发 popstate 事件,这个问题可以自定义一个方法来实现。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/bake/11413308.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-15
下一篇 2023-05-15

发表评论

登录后才能评论

评论列表(0条)

保存