Как хэшировать пароль с помощью bcrypt в django?

Я конвертирую php-сайт в django. Мне нужно подобрать пароль пользователя при входе в систему. Для хэширования пароля в cakephp

Security::setHash('blowfish');
Security::setCost(7);

Теперь мне нужно найти такую же функцию хэширования в django. Я просмотрел this и обнаружил, что они используют bcrypt для хэширования пароля в CakePhp. Я новичок в Django и не могу понять, как зашифровать пароль с помощью bcrypt в Django специально функцией setCost(), чтобы хэшированный пароль был таким же, как в CakePhp.

https://docs.djangoproject.com/en/3.2/topics/auth/passwords/#using-bcrypt-with-django

Использование bcrypt в Django

  1. Установите библиотеку bcrypt. Это можно сделать, запустив python -m pip install django[bcrypt], что эквивалентно python -m pip install bcrypt (вместе с любым требованием версии из setup.cfg Django).

  2. Измените PASSWORD_HASHERS, чтобы список BCryptSHA256PasswordHasher был первым. То есть, в вашем файле настроек вы поместите:

PASSWORD_HASHERS = [
    'django.contrib.auth.hashers.BCryptSHA256PasswordHasher',
    'django.contrib.auth.hashers.PBKDF2PasswordHasher',
    'django.contrib.auth.hashers.PBKDF2SHA1PasswordHasher',
    'django.contrib.auth.hashers.Argon2PasswordHasher',
]

Теперь, при использовании класса django User, bcrypt будет использоваться для хэширования паролей при вызове функции User.set_password().

Вернуться на верх