1

ハッシュ化されたパスワードを SQL Express データベースに保存しようとしています。しかし、私はそれを行うことができません。これが私のコードです:

SHA1CryptoServiceProvider sha = new SHA1CryptoServiceProvider();

byte[] encode = sha.ComputeHash(Encoding.ASCII.GetBytes(pass));

string cmd = "insert into tblLogin (username,password,email,state,active) values ('"+name+"',"+encode+",'"+email+"','"+state +"',"+ active + ")" ;

データベースでは、パスワードをvarbinaryとして保持しました。

ここで私の問題は、エンコードの値を System.Byte[] として取得していますが、ハッシュ値ではありません。どうすればこれを行うことができますか、見つけようとしましたが、パスワードをハッシュする方法を取得していますが、パスワードを保存する方法は取得していません。

ここで私の主な問題は、挿入クエリを作成して Byte[] をデータベースに格納するにはどうすればよいですか?

4

2 に答える 2

3

varbinary ではなく、varchar として保存します。

于 2012-12-07T05:17:32.883 に答える
1
var provider = new SHA1CryptoServiceProvider(salt);
byte[] bytes = Encoding.UTF8.GetBytes(input);
string result = Convert.ToBase64String(provider.ComputeHash(bytes)); // store it
于 2012-12-07T06:01:06.517 に答える