Как проверить хешированный пароль, хранящийся в БД PSQL - PullRequest
0 голосов
/ 19 февраля 2019

Я хочу проверить пароль, хэшируя его, а затем проверяя хэш на БД PSQL

Я пытаюсь сравнить хэши - но получаю ошибку Invalid Salt.

Вот мой код:

@app.route("/hello", methods=["POST", "GET"])
 def hello():
 email = request.form.get("email")
 password = request.form.get("password")
 password = bcrypt.generate_password_hash(password).decode('utf-8')
 db.execute("INSERT INTO users (email, password) VALUES (:email, 
 :password)",{"email": email, "password": password})
 db.commit()

И

@app.route("/check", methods=["POST", "GET"])
def check():
    email = request.form.get("login_email")
    check_email_in_db = db.execute("SELECT COUNT(*) FROM users WHERE email = :email", {"email": email}).fetchall()
    if check_email_in_db[0][0] == 1 :
        email = request.form.get("login_email")
        password = request.form.get("login_password")
        retrive_password_from_db = db.execute("SELECT password FROM 
        users WHERE email = :email", {"email": email}).fetchall()
        retrive_password_from_db = retrive_password_from_db[0][0]
        if bcrypt.check_password_hash(password, retrive_password_from_db):
            return("this works")
        else:
            return("something is wrong")

1 Ответ

0 голосов
/ 19 февраля 2019

ОК, я понял это.Все, что мне нужно было сделать, это указать раунды при хешировании:

password = bcrypt.generate_password_hash(password, 10).decode('utf-8')
...