如何在 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

  1. 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).

  2. 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() 功能时用于散列密码。