Générer des mots de passe à l’aide de Python et de secrets

Presque tous les jours, je reçois une notification de différents sites Web concernant des cyberattaques, des fuites de mots de passe et des violations de données. Avoir un mot de passe sécurisé est très important car il réduit les risques d’attaques par force brute où le pirate continuera à deviner les mots de passe jusqu’à ce qu’il trouve le bon. Vous pouvez générer des mots de passe en utilisant Python et un module appelé Secrets qui est beaucoup plus sécurisé que le module Random.

Générer un mot de passe sécurisé par vous-même est une sorte de tâche difficile. Vous essayerez toujours d’utiliser un mot de passe dont vous vous souviendrez facilement. Par exemple, certains des mots de passe les plus courants sont [email protected] ou 123456. Ces mots de passe peuvent être très facilement devinés par n’importe qui, même par un enfant !

Dans cet article, nous allons créer un programme Python qui générera un mot de passe sécurisé que vous pourrez utiliser n’importe où.

Qu’allons-nous couvrir ?

  • Discutez des différents packages Python qui seront utilisés pour générer un mot de passe sécurisé.
  • Générer des mots de passe à l’aide du module Python et Secrets

Modules Python

Module chaîne

Ce module en Python est utilisé pour manipuler des chaînes. Il est livré avec de nombreuses fonctionnalités que nous pouvons utiliser dans notre code Python pour les chaînes.

string.ascii_letters() : Cela renvoie toutes les lettres ASCII disponibles.

string.ascii_uppercase() : Cela renvoie toutes les lettres ASCII en majuscules.

string.ascii_lowercase() : Cela renvoie toutes les lettres ASCII en minuscules.

string.octdigits() : cela renvoie tous les chiffres octaux.

string.hexdigits() : cela renvoie tous les chiffres hexadécimaux.

string.digits() : cela renvoie tous les chiffres.

string.punctuation() : cela renvoie tous les caractères spéciaux ou ponctuations.

string.capwords () : Cela rend le premier caractère de chaque mot dans le titre en majuscule. Il prend également un deuxième paramètre qui peut être utilisé comme séparateur pour les majuscules.

Ce sont donc les fonctions fournies par le module String en Python que nous allons utiliser pour renforcer le mot de passe.

Module secrets

Le module Secrets est utilisé pour générer des nombres aléatoires cryptographiquement forts qui sont les meilleurs pour gérer des données comme les mots de passe, les jetons, etc. Pourquoi n’utilisons-nous pas le module Random ici ? C’est parce que les nombres générés par le module aléatoire peuvent être déterminés par une valeur initiale appelée graine de PRNG. Ce qui signifie qu’il n’y a pas de vrai hasard dans le module Random.

Écrivons du code

Ouvrez maintenant votre IDE préféré, ouvrez un nouveau fichier « password_generator.py » et collez le code ci-dessous :

# import the necessary modules!
import secrets
import string

print('Welcome to Password generator by GeekyHumans!')

#input the length of password
length = int(input('\nEnter the length of password: '))                      

#define data
lower = string.ascii_lowercase
upper = string.ascii_uppercase
num = string.digits
symbols = string.punctuation
# combine the data
all = lower + upper + num + symbols

#use secrets

password = ''.join(secrets.choice(all) for i in range(length))  

#print the password
print(password)

Explication des codes

Dans le code ci-dessus, nous avons importé deux modules : String et Secrets que nous utiliserons pour générer notre mot de passe fort. Après avoir importé les modules, nous demandons la longueur du mot de passe afin que notre générateur de mot de passe puisse générer le mot de passe de la longueur définie.

lower = string.ascii_lowercase
 upper = string.ascii_uppercase
 num = string.digits
 symbols = string.punctuation

Nous avons alors défini quatre variables :

  • lower : qui contient tous les caractères ASCII minuscules
  • upper : qui contient tous les caractères ASCII minuscules
  • symboles : qui contient tous les caractères spéciaux
  • num : qui contient toutes les valeurs entières de 1 à 9

Après cela, nous avons concaténé les chaînes pour former une seule chaîne.

all = lower + upper + num + symbols

Enfin, nous créons le mot de passe de la longueur donnée en joignant la chaîne générée par secrets.choice()

password = ''.join(secrets.choice(all) for i in range(length))  
#print the password
print(password)

Sortir:

Welcome to Password generator by GeekyHumans!
Enter the length of password: 100
 sY|Wr%J8g%f1r=B<I0GP;"o4C7Pkr^NE;y^[email protected]}A{^?l39e^}xtXFhY4=pTce-luz?O!Pvyj1"75?P%VOH%d?=:-!]MJRgZ%$vy

Derniers mots

Vous voyez à quel point il était facile de générer votre propre mot de passe sécurisé ? J’espère que ce tutoriel vous a plu et que vous avez pu créer votre propre générateur de mots de passe. Le concept est très simple et n’utilise que quelques fonctions de base. S’il vous plaît laissez-moi savoir dans les commentaires si vous rencontrez des problèmes. Vous pouvez également vérifier comment j’ai automatisé les tweets de mes articles de blog.

Spread the love
 
   

Laisser un commentaire