Я работаю над небольшим проектом, чтобы познакомиться с C # / .NET. Я пытаюсь аутентифицировать пользователя, который находится в таблице Users на локальном сервере SQL через форму. Пароли хешируются (не засолены - только тестирование). Моя проблема в том, что я не уверен, как преобразовать хешированное значение пароля (SHA512), которое находится в базе данных, в строку. Должен ли я использовать другой подход к этому?
Из того, что я читаю, я думаю, что должен использовать метод Convert.ToBase64String, но я не уверен, как бы я подошел к нему или я на правильном пути. Вот что у меня есть.
SqlConnection con = new SqlConnection(@"Data Source=myLocalSQLServer;Initial Catalog=libtest;Integrated Security=True");
SqlDataAdapter sqa = new SqlDataAdapter("Select count(*) from Users where UserName = '"+ UserName.Text +"' and Password = '"+ Password.Text +"'",con);
DataTable dt = new DataTable();
sqa.Fill(dt);
if(dt.Rows[0][0].ToString() == "1")
{
MessageBox.Show("Login Successful!");
}
else
{
MessageBox.Show("Username or Password is incorrect");
}
Хешированные пароли не могут аутентифицироваться. Я хотел бы иметь возможность аутентифицировать хешированные пароли и проверять пользователей для подключения к следующей форме.