gpt4 book ai didi

javascript - jsSHA512 来自同一字符串的不同哈希值

转载 作者:行者123 更新时间:2023-12-03 06:48:40 24 4
gpt4 key购买 nike

我正在使用jsSHA库来哈希密码,但每次运行脚本时,我都会从同一字符串中获得不同的哈希值:

/* Password hash function */
var b = $("form#register"),
shaObj = new jsSHA('SHA-512', 'TEXT');

b.on('submit', function (e) {

e.preventDefault();

var p = $('#reg_pwd'),
q = $('#confirm_pwd');

shaObj.update(p.val());
var p_hash = shaObj.getHash("HEX");
//p.val(p_hash);

shaObj.update(q.val());
var q_hash = shaObj.getHash("HEX");
//q.val(q_hash);

$('p').html('String: ' + p.val() + '<br />Hash: ' + p_hash +
'<br />String: ' + q.val() + '<br />Hash: ' + q_hash)

//this.submit()

});

我已经能够在 fiddle 中重现这一点。只需在其中一个字段中输入任何文本,然后多次按“提交”即可查看哈希值的变化。它在 demo page 中工作正常不过。

这是怎么回事?

最佳答案

jsSHA 的 .update() 方法会在之前的任何更新之后附加附加数据,从而有效地将它们连接在一起:

shaObj.update(p.val());
shaObj.update(q.val());
// similar to...
shaObj.update(p.val() + q.val());
<小时/>

要计算每个输入的哈希值,您必须为每个输入创建一个新的 jsSHA() 实例:

var shaObj = new jsSHA('SHA-512', 'TEXT'); // <---
shaObj.update(p.val());
var p_hash = shaObj.getHash("HEX");
//p.val(p_hash);

var shaObj = new jsSHA('SHA-512', 'TEXT'); // <---
shaObj.update(q.val());
var q_hash = shaObj.getHash("HEX");
//q.val(q_hash);

关于javascript - jsSHA512 来自同一字符串的不同哈希值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37605769/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com