sha:在不同页面上进行散列时,散列值不匹配

时间:2013-03-04 10:20:30

标签: javascript asp.net sha

我使用sha1 alogorithm来获取哈希密码,&将其存储在DB中。

我在aspx页面中尝试过以下

1。 的Login.aspx

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

Changepwd.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 changepwd:da39a3ee5e6b4b0d3255bfef95601890afd80709

1 个答案:

答案 0 :(得分:0)

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

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

我的印象是你犯了一个简单的拼写错误:

txtConfrimPassword
   ^^^^^^^