In Développement Dernière mise à jourated:
Partager sur:
Logiciel Jira est l'outil de gestion de projet n°1 utilisé par les équipes agiles pour planifier, suivre, publier et prendre en charge d'excellents logiciels.

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 le secrets 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()et randbelow() 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 du alphabet.
  • Nous utilisons les join() méthode pour ajouter ce caractère à la pwd 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.

Partager sur:
  • Bala Priya C
    Auteur
    Bala Priya est développeur et technicien writer originaire d'Inde avec plus de trois ans d'expérience dans le domaine de la rédaction de contenu technique. Elle partage son apprentissage avec la communauté des développeurs en créant des didacticiels techniques, des guides pratiques, et bien plus encore….

Merci à nos commanditaires

Plus de bonnes lectures sur le développement

Alimentez votre entreprise

Certains des outils et services pour aider votre entreprise grow.
  • L'outil de synthèse vocale qui utilise l'IA pour générerate des voix humaines réalistes.

    Essayez Murf AI
  • Web scraping, proxy résidentiel, proxy manager, web unlocker, moteur de recherche et tout ce dont vous avez besoin pour collecter des données Web.

    Essayez Brightdata
  • Monday.com est un système d'exploitation de travail tout-en-un pour vous aider à gérer les projets, les tâches, le travail, les ventes, le CRM, les opérations, workflowset plus encore.

    Essayez Monday
  • Intruder est un scanner de vulnérabilités en ligne qui détecte les failles de cybersécurité de votre infrastructure, afin d'éviter des violations de données coûteuses.

    Essayez Intruder