Faire un générateur de mot de passe en Python

Apprenez à faire un générateur de mot de passe en Python avec la possibilité de choisir la longueur de chaque type de caractère en utilisant les modules aléatoires, en chaîne et argparse intégrés.

Les générateurs de mots de passe sont des outils qui permettent à l’utilisateur de créer des mots de passe forts aléatoires et personnalisés en fonction des préférences.

Dans ce tutoriel, nous allons faire un outil de ligne de commande en Python pour générer des mots de passe. Nous utiliserons le module argparse pour faciliter l’analyse des arguments de ligne de commande que l’utilisateur a fournis. Commençons.

Importations

Importons quelques modules. Pour ce programme, nous avons juste besoin de la Classe ArgumentParser à partir de argparse et la random et secrets modules. Nous obtenons également le string module qui n’a que quelques collections de lettres et de chiffres. Nous n’avons pas à installer aucun de ceux-ci parce qu’ils viennent avec Python:

Mise en place de l’Argument Parser

Nous continuons maintenant à mettre en place l’argumente-analyse. Pour ce faire, nous créons une nouvelle instance de ArgumentParser à notre cours parservariable. Nous donnons à l’analyseur syntaxique un nom et une description. Ces informations apparaîtront si l’utilisateur fournit -h l’argumentation lors de l’exécution de notre programme, il leur dira également les arguments disponibles:

Nous continuons d’ajouter des arguments à l’analyseur syntaxique. Les quatre premiers seront le nombre de chaque type de caractères; nombres, minuscules, majuscules et caractères spéciaux, nous définissons également le type de ces arguments comme suit: int:

Ensuite, si l’utilisateur veut à la place passer le nombre total de caractères du mot de passe, et ne veut pas spécifier le nombre exact de chaque type de caractère, alors le -t ou --total-length l’argument traite qui:

Les deux arguments suivants sont le fichier de sortie où nous stockons les mots de passe, et le nombre de mots de passe à générer. Le amount sera un nombre entier et le fichier de sortie est une chaîne (défaut):

Enfin, et ce n’est pas le moins important, nous a naparons la ligne de commande ment pour ces arguments avec le parse_args()méthode de la méthode ArgumentParserclasse. Si nous n’appelons pas cette méthode, l’analyseur ne vérifiera rien et ne soulèvera aucune exception :

La boucle du mot de passe

Nous poursuivons avec la partie principale du programme : la boucle de mot de passe. Nous générons ici le nombre de mots de passe spécifiés par l’utilisateur.

Nous devons définir le passwordsliste qui contient tous les mots de passe générés:

Dans le for boucle, nous vérifions d’abord si total_length est passé. Si c’est le cas, alors nous générons directement le mot de passe aléatoire en utilisant la longueur spécifiée:

Nous utilisons le module secrets au lieu du hasard afin que nous puissions générer des mots de passe aléatoires cryptographiquement forts.

Sinon, nous faisons un passwordliste qui conservera d’abord toutes les lettres possibles, puis la chaîne de mot de passe:

Maintenant nous ajoutons les lettres possibles, les chiffres, et les caractères spéciaux à la passwordliste. Pour chacun des types, nous vérifions s’il est passé à l’analyseur syntaxique. Nous recevons les lettres respectives du module string:

Ensuite, nous utilisons la fonction random.shuffle() pour mélanger la liste. C’est ce qui est en place:

Après cela, nous rejoignons les personnages résultants avec une corde vide ""Nous avons donc la version corde de celui-ci:

Enfin, et ce n’est pas le moins important, nous ajoutons ceci password à la passwordsliste.

Sauver les mots de passe

Après la boucle de mot de passe, nous vérifions si l’utilisateur a spécifié le fichier de sortie. Si c’est le cas, nous ouvrons simplement le fichier (qui sera fait s’il n’existe pas) et écrivons la liste des mots de passe :

Dans tous les cas, nous imprimons les mots de passe.

Exemples

Maintenant, utilisons le script pour générer différentes combinaisons de mots de passe. Tout d’abord, imprimons l’aide :

Un lot à couvrir, en commençant par le --total-length ou -t paramètre:

Cela a généré un mot de passe d’une longueur de 12 et contient tous les caractères possibles. Bon, générons 10 mots de passe différents comme ça :

C’est génial. Générons un mot de passe avec 5 caractères minuscules, 2 majuscules, 3 chiffres et un caractère spécial, un total de 11 caractères:

Bon, générer 5 mots de passe différents basés sur la même règle:

C’est génial. On peut aussi générer des broches aléatoires de 6 chiffres:

Ajout de 4 majuscules et sauvegarde dans un fichier nommé keys.txt:

Un nouveau fichier keys.txt apparaîtra dans le répertoire de travail actuel qui contient ces mots de passe, vous pouvez générer autant de mots de passe que vous le pouvez:

Conclusion

Excellente. Vous avez réussi à créer un générateur de mot de passe en utilisant du code Python. Voyez comment vous pouvez ajouter d’autres fonctionnalités à ce programme.

Pour les longues listes, vous voudrez peut-être ne pas imprimer les résultats dans la console, de sorte que vous pouvez omettre la dernière ligne du code qui imprime les mots de passe générés sur la console.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *