У меня есть приложение winform c #. Он подключается к MySQL удаленно и сопоставляет пароли, хранящиеся в таблице базы данных MySQL. Пароли хранятся с использованием SHA1. Я сохранил значение по умолчанию: «мой пароль» и хэшировал его, используя SHA1.
Когда приложение запускается, сначала пользователю предлагается ввести пароль. Для этого, если я использую нижеупомянутую функцию, тогда она генерирует другую строку хеша по сравнению с той, которая генерируется функцией MySQL SHA1. Как сопоставить значения? Пожалуйста, помогите.
public static string HashCode(string str)
{
string rethash = "";
try
{
System.Security.Cryptography.SHA1 hash = System.Security.Cryptography.SHA1.Create();
System.Text.ASCIIEncoding encoder = new System.Text.ASCIIEncoding();
byte[] combined = encoder.GetBytes(str);
hash.ComputeHash(combined);
rethash = Convert.ToBase64String(hash.Hash);
}
catch (Exception ex)
{
string strerr = "Error in HashCode : " + ex.Message;
}
return rethash;
}
}
Зову это так:
string hashedvalue = HashCode("mypassword");
MessageBox.Show("The hashed value is : " + hashedvalue);
Различаются ли хеширование обоих?