C#检查用户密码&凭证SQL数据库

时间:2018-01-24 22:57:55

标签: c# sql passwords username

 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和密码是否为真。

1 个答案:

答案 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函数。