Хеширование и проверка пароля - PullRequest
0 голосов
/ 15 ноября 2018

Я сейчас пытаюсь узнать о хешировании и проверке паролей, мне сказали использовать модули passlib и pbkdf2.Код, который я рекомендовал, был:

Для хеширования:

 from passlib.hash import pbkdf2_sha256 
 hash = pbkdf2_sha256.hash("password", rounds=20000, salt_size=16)

Для аутентификации:

from passlib.hash import pbkdf2_sha256
pbkdf2_sha256.verify("password", hash)

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

password = input("Enter a password here: ")

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

Теперь я попытался сбросить пароль с помощью нового входа, а затем после него ввести код аутентификации, думая, что я установил пароль в качестве нового значения, и я смогу получать значение False каждый раз, когда явведенный пароль, который не соответствует первому введенному, но там, независимо от второго ввода, возвращается True

вот полный код

from passlib.hash import pbkdf2_sha256

password = input("Enter a password:")
hash = pbkdf2_sha256.hash("password", rounds=20000, salt_size=16)
print(hash)

password = input("please enter your password:")

print(pbkdf2_sha256.verify("password", hash))

Затем я попытался установить второйпароль как "password2", и это всегда возвращает ложь.

1 Ответ

0 голосов
/ 15 ноября 2018

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

from passlib.hash import pbkdf2_sha256

password_input = input("Enter a password:")
hash = pbkdf2_sha256.hash(password_input, rounds=20000, salt_size=16)
print(hash)

password_confirm = input("please enter your password:")

print(pbkdf2_sha256.verify(password_confirm, hash))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...