Используя следующее сообщение, вы можете зашифровать входную строку с помощью bcrypt.Как проверить входы с помощью CryptSharp?
public static string CreatePassword(string password)
{
// no need to provide a Salt value since bcrypt does that automatically
byte[] PasswordBytes = Encoding.ASCII.GetBytes(password);
return Crypter.Blowfish.Crypt(PasswordBytes);
}
Это использует CryptSharp, который является удивительным, но как проверить ввод пользователя с хэш возвращенного этой функцией?
Я не могу найти функцию в библиотеке, чтобы сделать это.
Лучший способ, которым я могу думать, чтобы сделать это следующим:
public static bool ValidatePassword(string password, string passwordHash)
{
// crypt the entered password
string Crypted = Crypter.Blowfish.Crypt(Encoding.ASCII.GetBytes(password));
// compare the crypted password against the value in the database
if (String.Compare(Crypted, passwordHash, false) != 0) return false;
return true;
}
Единственная проблема состоит в том, что значение соли не будет таким же, и поэтому значения почти всегда не согласны.
Почему вы не используете один и тот же соль для ввода и сохраненный пароль –