99 votes

Générateur de mot de passe Django

J'ai importé un tas d'utilisateurs et leurs données dans un projet django. Je dois attribuer un mot de passe à chacun. Est-ce un tel extrait pour la génération de mots de passe qui gèrera le hachage et le sel de Django?

242voto

JamesO Points 7085

Vous pouvez également utiliser la fonction intégrée make_random_password

 for user in new_users:
    password = User.objects.make_random_password()
    user.set_password(password)
    # email/print password
 

27voto

mitnk Points 421

Vous pouvez également utiliser from django.utils.crypto import get_random_string sur le module auth , il accepte également les arguments de mots clés length et allowed_chars .

5voto

AdamKG Points 6521

Utilisez simplement l'API - django.contrib.auth.models.User a une méthode .set_password() . Voici un exemple (que je n'ai pas testé, mais vous devriez avoir l'idée):

 from random import choice
from string import digits, letters
from django.contrib.auth.models import User

def _pw(length=6):
    s = ''
    for i in range(length):
        s += random.choice(digits + letters)
    return s

for user in User.objects.all(): # or .filter(...)
    user.set_password(_pw())
    user.save()
 

4voto

Willian Points 1327
import random
import string 
user.set_password(''.join([random.choice(string.digits + string.letters) for i in range(0, 10)]))
user.save()

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X