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.
Pour créer un générateur de mots de passe aléatoires, nous utiliserons cette approche :
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 :
random
intégré utilisé pour générer des nombres aléatoirespassword_list
random.choice()
pour chacune des variables déclarées du personnagepassword_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()
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 :
password
for
char
en boucle.join()
pour changer l'itération de la liste de la liste des mots de passe en une chaînef-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}")
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.