【发布时间】:2013-10-03 15:09:38
【问题描述】:
我对我在代码中得到的结果感到非常沮丧:
userOldPass //来自用户输入,用户的旧密码
oldPass //来自数据库,用户的旧密码
newPass //来自用户输入,用户的新密码
confirmNewPass //来自用户输入,用户新密码确认
function checkpass(){
if(userOldPass==oldPass) && (newPass==comfirmNewPass){
alert('success');
}else{
alert('error');
}
}
问题是即使输入已经全部正确,它也总是说“错误”。我通过警报功能检查了每个变量的值,看看是否存在一些不等式,但一切正常,但仍然会发出“错误”警报。
可能是什么问题?
附:所有变量都在 SHA1 哈希中。我使用了在网上找到的 CryptoJS.SHA1 函数。 我使用alert函数检查变量中的每个值,结果是正确的。
【问题讨论】:
-
您是否从数据库中获取密码哈希并将其传递给 JS?
-
是的,先生。所有值都是正确的,但它仍然打印“错误”。
-
不要那样做......这是最糟糕的主意!
-
好的,你能详细说明一下吗?
-
我们正在对密码进行哈希处理,以使其更难被窃取。此外,我们正在实施阻止用户的机制,例如。输入了 3 个错误密码。但是,当您将该哈希发送到浏览器 (JS) 时,您将允许无数次尝试破坏它。不要将其视为牢不可破(尤其是它只是 SHA1)。
标签: javascript php comparison-operators