Генерация пароля Джанго - PullRequest
       11

Генерация пароля Джанго

0 голосов
/ 25 сентября 2019

В моем PostgreSQL есть столбец паролей, в котором пароли хранятся в формате

argon2$argon2i$v=19$m=512,t=2,p=2$Z1BlYkltRjNhakFE$1cgxZNRetdjoCYwBrjAICA

Есть ли способ сгенерировать этот пароль вручную?Я не бэкэнд-разработчик и поэтому не особо разбираюсь в том, как эти вещи обычно обрабатываются.

Спасибо

Ответы [ 2 ]

1 голос
/ 25 сентября 2019

Вы можете использовать функцию 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]

0 голосов
/ 25 сентября 2019

Вы также можете использовать встроенную функцию 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 () принимает аргументы ключевых слов length и allowed_chars

...