生成 Django 密码

Generate Django Password

在我的 PostgreSQL 中,有一个密码列,它以

格式存储密码
argon2$argon2i$v=19$m=512,t=2,p=2$Z1BlYkltRjNhakFEcgxZNRetdjoCYwBrjAICA

有没有办法手动生成这个密码?我不是后端开发人员,因此不太了解这些事情通常是如何处理的。

谢谢

您可以使用make_password函数:

from django.contrib.auth.hashers import make_password

make_password('abc123')

但是如果您想更改用户的密码,请使用此(从 documentation 复制粘贴):

>>> from django.contrib.auth.models import User
>>> u = User.objects.get(username='john')
>>> u.set_password('new password')
>>> u.save()

在 Setting.py 中添加以下代码将有助于生成 Argon2 密码:

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

您可以通过pip install django[argon2]

安装氩气

您也可以使用内置函数 https://docs.djangoproject.com/en/stable/topics/auth/customizing/#django.contrib.auth.models.BaseUserManager.make_random_password

for user in new_users:
    password = User.objects.make_random_password()
    user.set_password(password)

还要注意 make_random_password() 接受关键字参数 lengthallowed_chars