如何在 django 中使用 bcrypt 散列密码?
How to hash the password using bcrypt in django?
我正在将 php 网站转换为 Django。我必须在登录期间匹配用户的密码。
用于散列 cakephp
中的密码
Security::setHash('blowfish');
Security::setCost(7);
现在我必须在 Django 中找到相同的散列函数。我浏览了 this 并发现他们使用 bcrypt 来散列 CakePhp 中的密码。我是 Django 的初学者,无法弄清楚如何在 Django 中使用 bcrypt 加密密码,特别是 setCost() 函数,以便散列密码与 CakePhp 中的相同。
https://docs.djangoproject.com/en/3.2/topics/auth/passwords/#using-bcrypt-with-django
Using bcrypt with Django
Install the bcrypt library. This can be done by running python -m pip install django[bcrypt]
, which is equivalent to python -m pip install bcrypt
(along with any version requirement from Django’s setup.cfg).
Modify PASSWORD_HASHERS
to list BCryptSHA256PasswordHasher
first. That is, in your settings file, you’d put:
PASSWORD_HASHERS = [
'django.contrib.auth.hashers.BCryptSHA256PasswordHasher',
'django.contrib.auth.hashers.PBKDF2PasswordHasher',
'django.contrib.auth.hashers.PBKDF2SHA1PasswordHasher',
'django.contrib.auth.hashers.Argon2PasswordHasher',
]
现在,当使用 django User
class 时,bcrypt 将在调用 User.set_password() 功能时用于散列密码。
我正在将 php 网站转换为 Django。我必须在登录期间匹配用户的密码。 用于散列 cakephp
中的密码Security::setHash('blowfish');
Security::setCost(7);
现在我必须在 Django 中找到相同的散列函数。我浏览了 this 并发现他们使用 bcrypt 来散列 CakePhp 中的密码。我是 Django 的初学者,无法弄清楚如何在 Django 中使用 bcrypt 加密密码,特别是 setCost() 函数,以便散列密码与 CakePhp 中的相同。
https://docs.djangoproject.com/en/3.2/topics/auth/passwords/#using-bcrypt-with-django
Using bcrypt with Django
Install the bcrypt library. This can be done by running
python -m pip install django[bcrypt]
, which is equivalent topython -m pip install bcrypt
(along with any version requirement from Django’s setup.cfg).Modify
PASSWORD_HASHERS
to listBCryptSHA256PasswordHasher
first. That is, in your settings file, you’d put:PASSWORD_HASHERS = [ 'django.contrib.auth.hashers.BCryptSHA256PasswordHasher', 'django.contrib.auth.hashers.PBKDF2PasswordHasher', 'django.contrib.auth.hashers.PBKDF2SHA1PasswordHasher', 'django.contrib.auth.hashers.Argon2PasswordHasher', ]
现在,当使用 django User
class 时,bcrypt 将在调用 User.set_password() 功能时用于散列密码。