Comment créerate un générateur de mot de passe aléatoire en Python

Apprenez à coder un générateur de mot de passe en Python pour générerate mots de passe sécurisés - à l'aide de Python secrets module.
Python est un langage de programmation polyvalent que vous pouvez utiliser dans toutes les applications d'automatisation, de développement Web, d'analyse de données, etc.
Vous pouvez utiliser Python pour automatiserate tâches du monde réel telles que monitorla navigation sur des sites Web, l'envoi d'e-mails et la génération de mots de passe. Dans ce didacticiel, vous apprendrez à créerate un générateur de mots de passe sécurisé et aléatoire en Python.
Commençons…
3 raisons pour lesquelles vous devriez coder un générateur de mots de passe en Python

Vous êtes-vous déjà senti fatigué de générer des mots de passe sécurisés et d'en garder une trace ? Voici pourquoi vous devriez envisager de coder un générateur de mot de passe en Python.
1. Automatiqueate la génération de mot de passe Process
Au cours d'une journée typique de votre vie, vous visiterez de nombreux sites Web, des sites Web de commerce électronique à l'apprentissage et au codage. platformes. La plupart des sites Web nécessitent que vous vous connectiez avec des informations d'identification. Il s'agit d'une tâche répétitive que vous pouvez automatiserate en utilisant un script Python.
2. Génératriceate Mots de passe sécurisés
Trouver des mots de passe forts qui répondent aux contraintes de sécurité peut être difficile ; les mots de passe triviaux qui ne sont pas forts sont sensibles aux attaques de sécurité.

Vous pouvez utiliser Python pour programmerally Janvierate sécurisé mots de passe. Cela vous permet d'exécuter le script pour générerate mots de passe selon vos besoins, sans vous soucier de la sécurité du mot de passe.
3. Ajoutez un projet pratique à votre portfolio
Si vous êtes un programmeur Python débutant, vous devez créer des projets pour perfectionner vos compétences et mettre en valeur votre expertise en programmation à travers un portfolio.
En plus d'un simple script Python, vous pouvez le personnaliser davantage et le publier en tant que package PyPI. Vous pouvez également ajouter une interface utilisateur graphique à l'aide de bibliothèques telles que Tkinter, et bien plus encore !
De cette façon, vous pouvez coder votre propre générateur de mots de passe pour générer en toute sécuritéate et gérez vos mots de passe sur les différents sites.
Le module Random en Python : est-il suffisamment sécurisé ?
Python module aléatoire fournit également des fonctions qui vous permettent d'échantillonner à partir d'un alphabet et de construire apparemment séquences aléatoires. Le générateur de modules aléatoiresates pseudo-aléatoire séquences. Voyons ce que signifie le pseudo-aléatoire.
Le terme pseudo-aléatoire signifie que même si la séquence peut paraître aléatoire, elle est en réalitéally is déterministe.
Par conséquent, si vous définissez une graine aléatoire, le module random produira la même séquence sur votre machine et pour quiconque exécute le même script avec la même graine.
C'est pourquoi vous ne devez pas utiliser random pour les applications où la sécurité est importante, comme les mots de passe.
Alors, quand pouvez-vous utiliser le random
module?
Pour toutes les applications qui ne sont pas sensibles, vous pouvez utiliser le module aléatoire. Par exemple, il y a trois séries de questions, A, B et C dans une classe de 40 étudiants. Vous souhaitez attribuer un ensemble particulier à chaque élève au hasard.

Dans ce cas, vous pouvez utiliser random.choice()
dans une expression de compréhension de liste, comme illustré ci-dessous :
import random
papers = ['A','B','C']
q_list = [random.choice(papers) for i in range(40)]
print(q_list)
Sample output:
['A', 'A', 'B', 'B', 'B', 'B', 'B', 'C', 'B', 'A', 'C', 'C', 'B',
'C', 'A', 'B', 'A', 'A', 'C', 'C', 'A', 'A', 'A', 'C', 'A', 'C',
'A', 'C', 'B', 'B', 'B', 'B', 'A', 'A', 'B', 'B', 'A', 'A', 'B', 'B']
📑 À retenir: Pour les simulations statistiques, vous pouvez utiliser
random
module; pour les applications sensibles, utilisez lesecrets
module.
Module Python Secrets : Votre clé pour sécuriser les mots de passe
La proposition d'amélioration de Python, PPE 506, conseille aux développeurs d'utiliser secrets
module chaque fois qu'une séquence doit être cryptographiqueally sécurisés, tels que les mots de passe et les jetons de sécurité.

La secrets
le module possède plusieurs fonctions intégrées qui vous permettent d'effectuer les actions suivantes :
- Générerate séquences de nombres aléatoires sécurisées pour les applications cryptographiques.
- Utilisez des fonctions telles que
choice()
,randbits()
etrandbelow()
générerate sécuriser les nombres aléatoires. - Générerate des jetons pour une réinitialisation de mot de passe, des URL temporaires, etc.
Comment coder un générateur de mot de passe en Python [en 4 étapes]
Pré-requis: Vous devez disposer de Python 3.6 ou d'un later version installée pour coder avec ce tutoriel. Vous pouvez également exécuter l'exemple de code dans GeekflareL'éditeur de code Python en ligne de.
Étape 1 : Importer les modules nécessaires
Dans un premier temps, importons le secrets
module. Ce module est intégré à la bibliothèque standard Python, vous pouvez donc l'importer comme suit :
import secrets
Importons également les éléments intégrés de Python string
module:
import string
Étape 2 : Définir l'alphabet
L'étape suivante consiste à définir l'alphabet. Alphabet désigne l'ensemble de tous les caractères que nous prendrons en compte pour la génération de mot de passe. Ici, nous voulons qu'il contienne les éléments suivants : lettres minuscules et majuscules et caractères spéciaux.

La string
Le module fournit des constantes de chaîne que nous pouvons utiliser pour définir l'alphabet. Nous utiliserons les constantes de chaîne suivantes :
- La
ascii_letters
est un concatenation de lettres minuscules et majuscules. - La
digits
constant est la chaîne contenant les chiffres de 0 à 9 :'0123456789'
. - La
punctuation
constant est la chaîne de tous les caractères spéciaux.
letters = string.ascii_letters
digits = string.digits
special_chars = string.punctuation
finally, concoctonsatenate les constantes de chaîne ci-dessus pour obtenir l’alphabet.
alphabet = letters + digits + special_chars
Étape 3 : Corrigez la longueur du mot de passe ; Génératriceate Un mot de passe
Stockons la longueur du mot de passe dans la variable, pwd_length
. Dans cet exemple, la chaîne de mot de passe a une longueur de 12.
pwd_length = 12
▶️ Maintenant, exécutez la cellule de code suivante pour générerate Un mot de passe:
pwd = ''
for i in range(pwd_length):
pwd += ''.join(secrets.choice(alphabet))
print(pwd)
# Sample output
}2:Lz,1!Gvo@
Le code ci-dessus fait ce qui suit :
- La chaîne de mot de passe
pwd
est une chaîne vide initially. - Nous savons que
secrets.choice(alphabet)
renvoie un caractère, échantillonné au hasard à partir dualphabet
. - Nous utilisons les
join()
méthode pour ajouter ce caractère à lapwd
chaîne de caractères. Parce que nous ne voulons pas d'espace entre les caractères, nous spécifions que le séparateur doit être''
. - Pour répéter les étapes ci-dessus pour générerate un mot de passe, nous utilisons une boucle qui s'exécute sur autant d'itérations que la longueur du mot de passe.
Étape 4 : Personnalisez vos mots de passe en fonction des contraintes
Vous pouvez personnaliser la génération du mot de passe en vérifiant s'il respecte certaines contraintes.
Par exemple, vérifions si le générateurated chaîne de mot de passe de longueur 12 satisfait les contraintes suivantes :
- La corde
pwd
doit contenir au moins un caractère spécial. - Il doit contenir au moins deux chiffres.
Dans l'extrait de code ci-dessous, vous pouvez modifier la condition selon laquelle le if
statement vérifie en fonction des contraintes que vous définissez.
while True:
pwd = ''
for i in range(pwd_length):
pwd += ''.join(secrets.choice(alphabet))
if (any(char in special_chars for char in pwd) and
sum(char in digits for char in pwd)>=2):
break
print(pwd)
# Sample output
lX]{`y47pM4t
Dans la cellule de code ci-dessus, nous utilisons un boucle while infinie qui fonctionne tant que la chaîne de mot de passe pwd
ne répond pas aux contraintes. Quand le générateurated mot de passe, pwd
satisfait les contraintes, on sort de la boucle infinie.
Voici le code complet du générateur de mot de passe Python :
# necessary imports
import secrets
import string
# define the alphabet
letters = string.ascii_letters
digits = string.digits
special_chars = string.punctuation
alphabet = letters + digits + special_chars
# fix password length
pwd_length = 12
# generate a password string
pwd = ''
for i in range(pwd_length):
pwd += ''.join(secrets.choice(alphabet))
print(pwd)
# generate password meeting constraints
while True:
pwd = ''
for i in range(pwd_length):
pwd += ''.join(secrets.choice(alphabet))
if (any(char in special_chars for char in pwd) and
sum(char in digits for char in pwd)>=2):
break
print(pwd)
Conclusion
Félicitations pour avoir terminé ce tutoriel ! 🎉Vous avez maintenant appris à coder un générateur de mots de passe en Python.
- Pour générerate cryptographiqueally mots de passe sécurisés, vous devez utiliser le secrets module et ne sauraient le aléatoire module.
- Un mot de passe fort doit être suffisamment long et doit être aléatoire dans le sens où il ne peut pas être facilement prédit ou généré.ated. Il doit s'agir d'une combinaison de lettres majuscules et minuscules, de chiffres et de caractères spéciaux.
- Python est livré avec un un magnifique module qui fournit toutes les lettres, chiffres et caractères spéciaux dans les constantes lettres_ascii, chiffreset ponctuation, respectivement. Utilisez la syntaxe : chaîne.constante pour accéder à ces constantes de chaîne.
- Vous pouvez utiliser les constantes ci-dessus pour définir un alphabet (un ensemble de tous les caractères) pour la génération de mot de passe.
- Une fois que vous avez défini un alphabet, vous pouvez utiliser secrets.choix() pour en prélever un caractère aléatoire. Pour répéter cela pour la longueur du mot de passe, vous pouvez utiliser une boucle for.
▶️ Ensuite, lisez le liste des serveurs web Python à utiliser.