paint-brush
Comment créer un générateur de mot de passe aléatoire à l'aide de Pythonpar@terieyenike
30,831 lectures
30,831 lectures

Comment créer un générateur de mot de passe aléatoire à l'aide de Python

par Teri4m2022/09/03
Read on Terminal Reader
Read this story w/o Javascript

Trop long; Pour lire

L'utilisation d'un mot de passe sécurisé lors de la connexion est essentielle pour empêcher les méchants (pirates) d'accéder à votre compte. Cet article vous apprendra comment créer un générateur de mot de passe aléatoire à l'aide de Python. Nous allons utiliser cette approche : écrivez tous les types de caractères de mots de passe acceptables, tels que les lettres, les chiffres et les symboles. Donnez aux utilisateurs la possibilité d'entrer le nombre de lettres, de symboles et de chiffres pour le mot de passe généré. Randomisez l'ordre des caractères pour qu'il soit difficile de deviner le mot de passe.
featured image - Comment créer un générateur de mot de passe aléatoire à l'aide de Python
Teri HackerNoon profile picture


Chaque site Web possède une forme d'interface de sécurité nécessitant une authentification de l'utilisateur. Ces formulaires utilisent souvent votre adresse e-mail et votre mot de passe pour accéder au site Web. L'utilisation d'un mot de passe sécurisé lors de la connexion est essentielle pour empêcher les méchants (pirates) d'accéder à votre compte.


Cet article vous apprendra comment créer un générateur de mot de passe aléatoire à l'aide de Python en générant une combinaison de lettres, de chiffres et de symboles sous forme de caractères brouillés, ce qui rend difficile le déchiffrage ou la devinette du mot de passe.


Construisons ensemble un générateur de mot de passe aléatoire.


Commencer

Pour créer un générateur de mots de passe aléatoires, nous utiliserons cette approche :

  • Écrivez tous les types de caractères de mots de passe acceptables, tels que les lettres, les chiffres et les symboles
  • Donner aux utilisateurs la possibilité d'entrer le nombre de lettres, de symboles et de chiffres pour le mot de passe généré
  • Randomisez l'ordre des caractères pour le rendre difficile à deviner


Création du générateur de mot de passe aléatoire

Comme vous le savez, certaines applications sur Internet suggèrent des mots de passe aléatoires lorsque vous créez un nouveau compte. Les caractères aléatoires sont à vous de décider et peuvent être aussi longs que huit caractères.


Créez un nouveau fichier, main.py , pour écrire les scripts de l'application.


 # main.py letters = [ 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z' ] numbers = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9'] symbols = ['!', '#', '$', '%', '&', '(', ')', '*', '+'] print("Welcome to the PyPassword Generator!") nr_letters = int(input("How many letters would you like in your password?\n")) nr_symbols = int(input(f"How many symbols would you like?\n")) nr_numbers = int(input(f"How many numbers would you like?\n"))


Les caractères du bloc de code ci-dessus constituent la combinaison du générateur de mot de passe présenté dans une liste.


Ensuite, assurez-vous que les utilisateurs peuvent entrer un chiffre, un entier représentant le nombre de fois qu'un caractère apparaîtra lorsque la sortie finale est affichée et déclarée avec une variable.


\n : représente que la valeur d'entrée ira à la ligne suivante


Maintenant, mettons à jour le reste du code. Copiez et collez ce qui suit :


 # main.py # Password Generator Project import random # add this # letters, numbers, and symbols lists # users' input for the amount of characters # add these below password_list = [] for char in range(1, nr_letters + 1): password_list.append(random.choice(letters)) for char in range(1, nr_symbols + 1): password_list.append(random.choice(numbers)) for char in range(1, nr_numbers + 1): password_list.append(random.choice(symbols)) random.shuffle(password_list)


Le bloc de code effectue les opérations suivantes :

  • Importez le module random intégré utilisé pour générer des nombres aléatoires
  • Créez une liste vide [] avec la variable, password_list
  • Parcourez le nombre dans la fonction de plage pour créer une séquence de nombres à partir de l'index de début et se termine par le dernier index plus 1
  • Ensuite, ajoutez la liste vide pour obtenir un élément sélectionné au hasard en utilisant la méthode random.choice() pour chacune des variables déclarées du personnage
  • Mélangez la liste de mots de password_list nouvellement créée en changeant la position des éléments à chaque fois qu'un nouveau mot de passe est créé à l'aide de la méthode .shuffle()


Convertir la liste de mots de passe en chaîne

Copiez et mettez à jour le code suivant :


 # main.py # import # letters, numbers, and symbols lists # users' input for the amount of characters # randomize characters # add this password = "" for char in password_list: password += char # convert list to string pwd = ''.join(password_list) print(f"Your random password to use is: {pwd}")


Le processus de conversion d'une liste en chaîne est le suivant :

  • Créer une variable de chaîne vide, mot de password
  • Parcourez la liste des mots de passe à l'aide du mot-clé for
  • Concaténer les chaînes de mot de passe avec la variable char en boucle
  • Utilisez la méthode .join() pour changer l'itération de la liste de la liste des mots de passe en une chaîne
  • Enfin, affichez le résultat du mot de passe à l'aide des f-strings


Le résultat final du code :


 # main.py import random letters = [ 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z' ] numbers = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9'] symbols = ['!', '#', '$', '%', '&', '(', ')', '*', '+'] print("Welcome to the PyPassword Generator!") nr_letters = int(input("How many letters would you like in your password?\n")) nr_symbols = int(input(f"How many symbols would you like?\n")) nr_numbers = int(input(f"How many numbers would you like?\n")) password_list = [] for char in range(1, nr_letters + 1): password_list.append(random.choice(letters)) for char in range(1, nr_symbols + 1): password_list.append(random.choice(numbers)) for char in range(1, nr_numbers + 1): password_list.append(random.choice(symbols)) random.shuffle(password_list) password = "" for char in password_list: password += char print("char", char) # convert list to string pwd = ''.join(password_list) print(f"Your random password to use is: {pwd}")


Conclusion

Dans cet article, vous avez développé une application qui génère des mots de passe aléatoires qui ne sont pas les mêmes à chaque tentative, ce qui la rend dynamique pour générer autant de mots de passe que possible.


Bien que ce ne soit peut-être pas la meilleure approche pour générer des mots de passe aléatoires, l'essentiel de l'article est de montrer la possibilité d'utiliser le programme Python pour créer un mot de passe. Pourtant, la sortie est inattendue et différente à chaque nouvelle entrée, quelle que soit la longueur du mot de passe.




Apprendre encore plus