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