У меня есть Домашняя страница с логином с $ hash = password_hash ($ accountpassword, PASSWORD_DEFAULT) ;. (http://php.net/manual/de/function.password-hash.php)mySQl логин с C#
Пароль сохраняется, так как хэш начинается с $ 2y $.
Затем я создал вход в C#:
//crypting the PW that user enter
string cryptedPassword = Crypter.Blowfish.Crypt(textBox_password.Text);
string user = textBox_username.Text;
string pass = cryptedPassword;
if (user == "" || pass == "")
{
MessageBox.Show("Empty Fields Detected ! Please fill up all the fields");
return;
}
bool r = validate_login(user, pass);
if (r)
MessageBox.Show("Correct Login Credentials");
else
MessageBox.Show("Incorrect Login Credentials"+cryptedPassword);
мой метод проверки:
private bool validate_login(string user, string pass)
{
db_connection();
MySqlCommand cmd = new MySqlCommand();
cmd.CommandText = "Select * from users where [email protected] and [email protected]";
cmd.Parameters.AddWithValue("@user", user);
cmd.Parameters.AddWithValue("@pass", pass);
cmd.Connection = connect;
MySqlDataReader login = cmd.ExecuteReader();
if (login.Read())
{
connect.Close();
return true;
}
else
{
connect.Close();
return false;
}
}
на Crypter.Blowfish.Crypt (textBox_password.Text) является worng. Я становлюсь хэш начинается с $ 2a $
может кто поможет решить эту проблему?
hmm php script не является моей работой. как я могу узнать параметр 2.? – Andreas
Либо используйте что-то вроде 'Crypter.Blowfish.GenerateSalt (6)' и сохраните это значение, либо используйте строку по своему выбору (менее безопасную). Я обновил свой ответ, включив альтернативный метод, который должен позволить вам выполнить чек без необходимости хранить соль. – Graeme