У меня есть простое Flask приложение, которое использует bcrypt. Я потратил несколько часов на эту простую в использовании библиотеку, чтобы выяснить проблему кодирования. Метод login вызывает метод doDecideHashedPassword, который затем должен возвращать true или false, если учетные данные совпадают.
Также обратите внимание на следующее
- Я использую postgres, и в настоящее время мое поле пароля установлено на varchar (500)
- Я преобразую хешированный пароль в str для точного хранения его в базе данных.
Когда я запрашиваю хешированный пароль из базы данных и передаю его через doDecodeHashedPassword ниже , Я получаю недопустимую соль. Это принимает электронную почту и пароль из формы.
def doDecodeHashedPassword(self, email, password):
getpwd = ClientUser.query.filter_by(email=email).one()
getpwd = getpwd.password
getpwd = getpwd.encode()
password = password
check_user_integrity = bcrypt.checkpw(password,getpwd)
if check_user_integrity:
return (check_user_integrity)
else:
return False
Почему я получаю недопустимую соль.