0

我正在使用 sha1 算法对密码进行哈希处理,并将其存储在数据库中。

我试过关注,在aspx页面

1. 登录.aspx

  function enc()
  {
   var x=document.getElementById("<%=txtPwd.ClientID %>").value;
   var hash = CryptoJS.SHA1(x);
   alert(hash); 
   alert(typeof hash);
   return false;
  }

修改pwd.aspx

  function enc()
  {
   var confirmp=$("#txtConfrimPassword").val();
   var hash = CryptoJS.SHA1(confirmp);
   alert(hash);
   document.getElementById("<%=txtConfrimPassword.ClientID%>").value = hash; 
   document.getElementById("<%=txtNewPassword.ClientID%>").value = hash; 
   return false;
  }

2 次尝试: var id2 = $.sha1(String(id)); 另类也..

但在这两种情况下,登录时更改的密码都不匹配。

观察:相同值的页面哈希值不同!

问题:我怎样才能从两个页面中获得相同的值。或者我哪里出错了,我错过了什么吗?请指导我。

编辑:

输出:值:abc1234

1 登录:c9b359951c09c5d04de4f852746671ab2b2d0994

2 更改密码:da39a3ee5e6b4b0d3255bfef95601890afd80709

4

1 回答 1

0

da39a3ee5e6b4b0d3255bfef95601890afd80709是空字符串的 SHA1 哈希。您的confirmp变量根本不包含任何密码。您可以使用任何支持控制台的浏览器进行验证:

var confirmp=$("#txtConfrimPassword").val();
console.log(confirmp);

我的印象是你犯了一个简单的错字:

txtConfrimPassword
   ^^^^^^^
于 2013-03-04T10:41:15.890 回答