Я сейчас пытаюсь узнать о хешировании и проверке паролей, мне сказали использовать модули 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", и это всегда возвращает ложь.