То, как когда-либо работал passlib.ha sh (), на данный момент мне не под силу. Тем не менее, лучше всего, что это не удалось и подстегнул этот вопрос. Ответ пришел с сервера разногласий Python (спасибо, Скотт и ХХ) и является напоминанием go к исходной документации, не всегда опираясь на учебные видеоролики, которые могут устареть.
Документация для passlib никогда не объявляет, что использование passlib.hash()
так, как я сделал, должно работать. Вместо этого на момент написания этого ответа код должен быть следующим:
from passlib.hash import pbkdf2_sha256
a = pbkdf2_sha256.hash('magic15!')
print(a)
. Для всех, кто сталкивается с этой ошибкой, убедитесь, что вы используете правильный код на основе самой последней документации:
https://passlib.readthedocs.io/en/stable/narr/hash-tutorial.html
Хотя я предлагаю также прочитать эту статью: https://passlib.readthedocs.io/en/stable/narr/quickstart.html#recommended - хэши
Чтобы выяснить, почему Я использовал неправильный код, я получил
DeprecationWarning: the method passlib.handlers.sha2_crypt.sha256_crypt.encrypt() is deprecated as of Passlib 1.7, and will be removed in Passlib
2.0, use .hash() instead.
Я получил это при использовании sha256_crypt.encrypt (), как было показано в обучающей серии видеороликов. Использование passlib.ha sh () работало и внезапно прекратилось. Наверное, к лучшему, но тот факт, что он работал и прекратился, сбил меня с толку. Однако приведение в соответствие с документацией является гораздо более подходящим направлением для продолжения.