gpt4 book ai didi

javascript - CryptoJS 无法与预哈希数据进行比较

转载 作者:行者123 更新时间:2023-11-29 19:24:40 27 4
gpt4 key购买 nike

我有一个包含 SHA1 散列数据的密码表。所以我想用 CryptoJS 进行验证输入。它出错了..但是当我尝试显示它时,结果匹配..我编写了错误的函数吗?

这是我的代码

function checkCurPass()
{
var hash = CryptoJS.SHA1("<?php echo $selected->password ?>");
var currentPass = document.getElementById('users-profile-currentpassword');
var hashedPass = CryptoJS.SHA1(currentPass.value);

    var message = document.getElementById('mesas');
message.innerHTML = hashedPass;

if (hashedPass == hash)
{
$('#currentPassForm').addClass('has-success').removeClass('has-error');
}
else
{
$('#currentPassForm').addClass('has-error').removeClass('has-success');
}
}

带有哈希“默认”的屏幕截图

enter image description here

最佳答案

您的散列不是字符串,而是对象。如果你 console.log(hash),你会看到这个。为了从这些哈希值中获得正确的十六进制字符串,分别调用 hash.toString(CryptoJS.enc.Hex)hashedPass.toString(CryptoJS.enc.Hex)

当您在消息元素中显示散列时,将隐式调用 toString,这就是显示的字符串相等的原因。

参见 http://codepen.io/anon/pen/BNxjGm

关于javascript - CryptoJS 无法与预哈希数据进行比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31309729/

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