взломать пароли с помощью argon2_cffi - PullRequest
0 голосов
/ 13 марта 2019

Я пытаюсь понять, как использовать argon2_cffi для хранения хешированных паролей в моей базе данных.

В частности, я использую этот код для записи хешированного пароля в мою таблицу PostgreSQL.

from argon2 import PasswordHasher

ph = PasswordHasher()

new_user = User(
    name=POST.get('name', 'default_value'),
    fullname=POST.get('fullname', 'default_value'),
    nickname=POST.get('nickname', 'default_value'),
    hashed_password=ph.hash(POST.get('password', 'default_value')))
session.add(new_user)

Однако каждый раз, когда пользователь вводит пароль в мою форму, он выдает новый пароль, хотя вставленный текст такой же.

Конечно, я знаю, что это правильное поведение, но что мне делать, чтобы убедиться, что данный зарегистрированный пользователь вставил правильный пароль, если я не могу создать тот же хеш?

1 Ответ

1 голос
/ 13 марта 2019

Извините, узнал себя в документах ...

import argon2

ph = argon2.PasswordHasher()
def login(db, user, password):
    hash = db.get_password_hash_for_user(user)

    # Verify password, raises exception if wrong.
    ph.verify(hash, password)

    # Now that we have the cleartext password,
    # check the hash's parameters and if outdated,
    # rehash the user's password in the database.
    if ph.check_needs_rehash(hash):
        db.set_password_hash_for_user(user, ph.hash(password))
...