Comment créer un générateur de mot de passe avec Python ?

Publié: 2021-08-20

La sécurité est l'un des aspects les plus cruciaux de notre vie. L'importance de la sécurité augmente de jour en jour, car la plupart des choses se passent en ligne. Les mots de passe apparaissent lorsque nous parlons de sécurité.

Dans cet article, nous allons créer un générateur de mots de passe qui nous aide à générer rapidement des mots de passe aléatoires et forts.

Pourquoi avons-nous besoin d'un générateur de mot de passe ?

Parce que nous ne pouvons pas penser à différents modèles de mots de passe instantanément.

Mais, ce n'est pas le même cas avec les ordinateurs. Les ordinateurs peuvent générer des mots de passe aléatoires et forts basés sur nos personnalisations en quelques secondes. Il existe de nombreux générateurs de mots de passe.

Pouvons-nous créer le nôtre avec les personnalisations que nous aimons ?

Oui, nous pouvons certainement en créer un. Et ici, nous allons vous montrer comment faire cela.

Créons un générateur de mot de passe.

Générateur de mot de passe

La meilleure chose à propos de la création de notre propre générateur de mot de passe est que nous pouvons le personnaliser à notre guise.

Tout d'abord, nous allons créer un générateur de mot de passe qui demande la longueur du mot de passe et génère un mot de passe aléatoire contenant des chiffres, des alphabets et des caractères spéciaux.

Ensuite, nous allons l'améliorer en demandant le numéro de chaque type de caractère, comme le nombre de chiffres, d'alphabets et de caractères spéciaux.

Alors, sans plus tarder, voyons les étapes pour créer un générateur de mot de passe à l'aide de Python.

Pas

  • Stockez tous les caractères sous forme de liste. Nous pouvons utiliser le module string de Python ou les taper tous.
  • Demandez à l'utilisateur d'entrer la longueur du mot de passe.
  • Mélangez les caractères en utilisant la méthode random.shuffle .
  • Initialisez une liste vide pour stocker le mot de passe.
  • Écrivez une boucle qui itère des durées de length .
    • Choisissez un caractère aléatoire parmi tous les caractères en utilisant la méthode random.choice .
    • Ajoutez le caractère aléatoire au mot de passe.
  • Mélangez la liste de mots de passe résultante pour la rendre plus aléatoire.
  • Convertissez la liste de mots de passe en chaîne à l'aide de la méthode de join .
  • Imprimez le mot de passe.

Suivez les étapes ci-dessus et essayez d'écrire du code. Ne vous inquiétez pas, même si vous n'êtes pas capable d'écrire le code. Découvrez le code ci-dessous.

Code

 import string import random ## characters to generate password from characters = list(string.ascii_letters + string.digits + "[email protected]#$%^&*()") def generate_random_password(): ## length of password from the user length = int(input("Enter password length: ")) ## shuffling the characters random.shuffle(characters) ## picking random characters from the list password = [] for i in range(length): password.append(random.choice(characters)) ## shuffling the resultant password random.shuffle(password) ## converting the list to string ## printing the list print("".join(password)) ## invoking the function generate_random_password()

Le code ci-dessus est explicite. Nous venons de suivre les étapes décrites pour écrire du code. Ainsi, vous ne rencontrerez aucun problème pour comprendre le code si vous lisez les étapes.

Maintenant, exécutez le code et générez un mot de passe. Un exemple de sortie sera le suivant.

 Enter password length: 10 d&amIzK%d)

Observez le mot de passe dans la sortie ci-dessus. Y a-t-il un chiffre ? Non. Parce qu'il n'y a aucune garantie que le programme inclura des chiffres.

Ensuite, nous essayons de garantir que le programme inclura des chiffres et des caractères spéciaux en demandant à l'utilisateur d'entrer le nombre de chiffres, d'alphabets et de caractères spéciaux qu'il souhaite.

Lorsque l'utilisateur entre le nombre de caractères pour chaque type, le programme inclura le nombre respectif de types de caractères dans le mot de passe.

Voyons le code qui accepte le nombre de caractères pour chaque type et génère le mot de passe.

 import string import random ## characters to generate password from alphabets = list(string.ascii_letters) digits = list(string.digits) special_characters = list("[email protected]#$%^&*()") characters = list(string.ascii_letters + string.digits + "[email protected]#$%^&*()") def generate_random_password(): ## length of password from the user length = int(input("Enter password length: ")) ## number of character types alphabets_count = int(input("Enter alphabets count in password: ")) digits_count = int(input("Enter digits count in password: ")) special_characters_count = int(input("Enter special characters count in password: ")) characters_count = alphabets_count + digits_count + special_characters_count ## check the total length with characters sum count ## print not valid if the sum is greater than length if characters_count > length: print("Characters total count is greater than the password length") return ## initializing the password password = [] ## picking random alphabets for i in range(alphabets_count): password.append(random.choice(alphabets)) ## picking random digits for i in range(digits_count): password.append(random.choice(digits)) ## picking random alphabets for i in range(special_characters_count): password.append(random.choice(special_characters)) ## if the total characters count is less than the password length ## add random characters to make it equal to the length if characters_count < length: random.shuffle(characters) for i in range(length - characters_count): password.append(random.choice(characters)) ## shuffling the resultant password random.shuffle(password) ## converting the list to string ## printing the list print("".join(password)) ## invoking the function generate_random_password()

Alors, quelle est la différence entre le code précédent et ce code ?

  • Nous avons écrit des boucles séparées pour chaque type de caractère afin de les ajouter au mot de passe.
  • Il existe deux contrôles conditionnels pour valider le nombre total de caractères avec la longueur du mot de passe.

Nous avons ajouté du code supplémentaire. Mais, le modèle est similaire au code précédent. Ainsi, vous n'aurez aucune difficulté à le comprendre.

Maintenant, il est temps d'exécuter et de vérifier la sortie. Regardez le test suivant.

 Enter password length: 10 Enter alphabets count in password: 3 Enter digits count in password: 2 Enter special characters count in password: 3 V2(&#XlQq1

Si vous voyez le mot de passe généré cette fois, il contient le nombre minimum de caractères souhaité par l'utilisateur. Et le programme a inclus 2 caractères aléatoires supplémentaires pour que la longueur du mot de passe soit égale à celle saisie par l'utilisateur.

Hourra! nous avons un générateur de mot de passe fort complet.

Conclusion

Nous avons vu comment créer un générateur de mot de passe à partir de zéro. Pouvons-nous y ajouter plus de fonctionnalités ? Oui, on peut en ajouter autant qu'on veut. Mais assurez-vous que le mot de passe résultant est suffisamment fort.

Générez les mots de passe à partir du code et utilisez-les pour votre prochain compte en ligne.

Ensuite, découvrez comment créer un jeu de morpion en Python.

Bon codage !