0

パスワードのハッシュにsha1アルゴリズムを使用しており、DBに保存しています。

aspxページで次のことを試しました

1. ログイン.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

4

1 に答える 1

0

da39a3ee5e6b4b0d3255bfef95601890afd80709空の文字列の SHA1 ハッシュです。confirmp変数にはパスワードがまったく含まれていません。コンソールをサポートする任意のブラウザーで確認できます。

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

あなたは単純なタイプミスをしたような印象を受けました:

txtConfrimPassword
   ^^^^^^^
于 2013-03-04T10:41:15.890 に答える