private bool AuthenicateUser(string username, string password)
{
string sql = string.Format("SELECT cast(1 as bit) FROM Authenticate WHERE Userid = '{0}' AND password = '{1}'", username, password);
if (GetData(sql, "UserInfo").Tables[0].Rows.Count == 1)
{
return true;
}
else
{
return false;
}
}
我想知道是否有更短/更好的方法来检查用户ID和密码是否为真。
答案 0 :(得分:0)
有一种更好的方法可以检查用户ID和密码是否正确。
首先阅读Thomas Pornin's canonical answer to How to Securely Hash Passwords。
然后,如果您愿意,my github repository有一个基于代码@Jither编写的基于PBKDF2-HMAC-SHA-512的代码示例,以及测试向量。
使用尽可能多的迭代,使用SHA-512变体,并且不超过哈希的本机字节数输出;对于SHA-512,这是64字节或更少的输出。
或者,使用默认的本机RFC2898DeriveBytes函数,该函数使用不太理想的PBKDF2-HMAC-SHA-1函数。