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

将其保存为 varchar,而不是 varbinary。

于 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 回答