Flask bcrypt.check_password_hash () всегда возвращает False, не может сузить мою ошибку

1

При попытке написать логин в фляже, я хотел попробовать "bcrypt" flask extensio. Когда я использую метод__использователя__пользователя_пользователя_процесса() _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────

Вот код, который я использую для генерации паролей:

    hashPwd = bcrypt.generate_password_hash('form.password.data')

Вот код, который я использую для проверки пароля кандидата на сохраненный:

if form.validate_on_submit():
    user = User.query.filter_by(username=form.username.data).first()

    if user and bcrypt.check_password_hash(user.password, form.password.data):
        login_user(user, remember=form.rememberMe.data)

Если я использую User.query.get(1).password в оболочке python, пароль находится в формате:

u'$2b$12$JOXUftWBbn/egABOkAYNwezGKfh6GzIHOofUnvx73AiSOfoNWEGFC'

Когда я запускаю тот же запрос в коде, пароль:

$2b$12$JOXUftWBbn/egABOkAYNwezGKfh6GzIHOofUnvx73AiSOfoNWEGFC

U ' в первом pw - единственное различие, и это может быть причиной проблемы, но я не знаю, что это такое.

Есть идеи?

Теги:
flask
bcrypt

1 ответ

0

С http://flask-bcrypt.readthedocs.io/en/latest/

pw_hash = bcrypt.generate_password_hash('hunter2')
bcrypt.check_password_hash(pw_hash, 'hunter2') # returns True

Обратная функция должна проверять хэш против пароля, в вашем случае user.password действительно должен быть hashPwd

if user and bcrypt.check_password_hash(hashPwd, form.password.data):
  • 0
    Привет дмитрий Это не совсем понятно из кода, который я вставил, но hashPwd - это метод класса в моем классе 'register', и я не могу использовать его в своей проверке, которая является методом класса входа в систему.
  • 0
    Вы используете python3? Из той же документации вам может потребоваться выполнить bcrypt.generate_password_hash ('hunter2'). Decode ('utf-8') для хеша
Показать ещё 3 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню