Bcrypt.Net.Verify возвращает true для ложных строковых данных

Я использую строку с данными соли для хеширования пароля с помощью библиотеки BCrypt.Net.

код:

string src = Salt + UserName + Key + Password
var hash = Bc.HashPassword(src, 12);

Когда я пытаюсь проверить хешированные данные с неверными строковыми данными (например, с другим паролем), значение BCrypt.Verify(wrongStr,hash) возвращается true,

Есть идеи? есть ли ограничения длины строки?

1 ответ

bcrypt возвращает строку из 60 символов, убедитесь, что ваше поле может справиться с этим

и ваша проверка неверна, вам нужно использовать логическое значение!

string myPassword = "password";
string mySalt = BCrypt.GenerateSalt();
//mySalt == "$2a$10$rBV2JDeWW3.vKyeQcM8fFO"
string myHash = BCrypt.HashPassword(myPassword, mySalt);
//myHash == "$2a$10$rBV2JDeWW3.vKyeQcM8fFO4777l4bVeQgDL6VIkxqlzQ7TCalQvla"


bool doesPasswordMatch = BCrypt.CheckPassword(myPassword, myHash);
Другие вопросы по тегам