Flask Пароль Bcrypt ha sh не совпадает, как его решить? - PullRequest
0 голосов
/ 01 августа 2020

Я пытаюсь создать простое веб-приложение, используя Flask. И я попытался запустить его с помощью sqlite. И работает отлично. Единственная проблема заключается в том, что когда я пытался разместить приложение на сервере общего хостинга с MySQL в качестве базы данных, я столкнулся с некоторыми проблемами сопоставления паролей. Когда я посмотрел на проблему, я увидел, что хэши паролей flask -bcrypt не совпадают. И я не знаю, как это исправить. Вот код:

from flask_bcrypt import Bcrypt

app.config["SECRET_KEY"] = "super-secret-key"
cryptor = Bcrypt(app)

Хеширование и сохранение в базе данных:

Примечание: Я пытался сопоставить пароли с помощью терминала и интерпретатора перед сохранением в базе данных. И это совпало, но после того, как оно было сохранено и извлечено, оно не совпадает.
password = cryptor.generate_password_hash(request.form.get("password")).decode("utf-8")

user_obj = Users(password=password)
db.session.add(user_obj)
db.session.commit()

Соответствие:

data = Users.query.filter_by(email=form.username.data).first()
if cryptor.check_password_hash(data.password, form.password.data):
    #pass the login check
else:
    #dont pass

Модель Sqlalchemy:

class Users(db.model):
    password = db.Column(db.String(50), nullable=False)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...