Как сгенерировать пароль, который соответствует валидаторам auth в Django?
Я использовал User.objects.make_random_password()
для генерации паролей для новых пользователей, однако я обнаружил, что этот метод создает пароли, которые не соответствуют валидаторам (AUTH_PASSWORD_VALIDATORS), настроенным в Django.
Я также пробовал использовать from django.contrib.auth.hashers import make_password
, но хэшированный пароль не соответствует всем критериям проверки пароля, так как слишком длинный.
Я хочу знать, существует ли функция, которая создает пароли на основе AUTH_PASSWORD_VALIDATORS?.
Что ж, вам стоит попробовать создать свой собственный создатель паролей.
Попробуйте это. Я сделал для вас функцию для создания новых паролей .
import random
def create_new_password():
alphas = "abcdefghijklmnopqrstuvwxyz"
alphas_cap = alphas.upper()
numbers = "12345678901234567890123456"
special_chars = "!@#$%^&*()_+/!@#$%^&*()_+/"
password_characters = [alphas , alphas_cap , numbers , special_chars ]
new_password = ""
for i in range(16) :
n = random.randint(0,3)
chars_used = password_characters[n]
char = chars_used[random.randint(0,25)]
new_password += char
return new_password
print(create_new_password())