Как хэшировать пароль с помощью 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
Установите библиотеку bcrypt. Это можно сделать, запустив
python -m pip install django[bcrypt], что эквивалентноpython -m pip install bcrypt(вместе с любым требованием версии из setup.cfg Django).Измените
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().