如何在数据库中存储哈希密码

时间:2012-12-07 05:14:51

标签: c# sql hash passwords sha1

我正在尝试在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 []存储到数据库中?

2 个答案:

答案 0 :(得分:3)

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

答案 1 :(得分:1)

var provider = new SHA1CryptoServiceProvider(salt);
byte[] bytes = Encoding.UTF8.GetBytes(input);
string result = Convert.ToBase64String(provider.ComputeHash(bytes)); // store it