Des lecteurs comme vous aident à soutenir MUO. Lorsque vous effectuez un achat en utilisant des liens sur notre site, nous pouvons gagner une commission d'affiliation. En savoir plus.

Les données sont un atout vital dans le monde numérique d'aujourd'hui. Plus de huit millions de personnes sont victimes de pirates informatiques chaque année et plus de 2200 cyberattaques ont lieu chaque jour. Avec un taux de cybercriminalité aussi alarmant, il devient prioritaire d'utiliser les meilleures pratiques pour se protéger contre les pirates. L'un des aspects les plus importants de tout compte est son mot de passe.

Si un pirate informatique compromet votre mot de passe, il peut accéder à vos informations personnelles, et même à votre compte bancaire, en quelques minutes. Bien que cela semble effrayant, vous pouvez apprendre à sécuriser vos mots de passe en utilisant les meilleures pratiques en créant votre propre programme Python pour vérifier sa force.

Différentes règles pour définir des mots de passe forts

instagram viewer

Certaines règles de mot de passe fort que vous pourriez envisager de mettre en œuvre sont :

  1. Le mot de passe doit comporter au moins 12 caractères. Plus le mot de passe est long, moins il y a de chance qu'une attaque par force brute le compromette.
  2. Le mot de passe doit contenir une combinaison de lettres minuscules, de lettres majuscules, de chiffres et de caractères spéciaux.
  3. Évitez les caractères répétés dans le mot de passe.
  4. Il ne doit pas contenir de détails personnels tels que des noms, des numéros de téléphone ou quoi que ce soit que quelqu'un puisse facilement deviner.
  5. Il ne devrait pas s'agir d'un mot courant du dictionnaire, bien que vous puissiez utiliser des mots dans des phrases de mot de passe plus longues.
  6. Le mot de passe ne doit pas être le même pour plusieurs comptes. Tu peux configurer un gestionnaire de mots de passe pour remplir automatiquement différents mots de passe pour différents sites sans se souvenir de chacun d'eux.

Il existe différentes façons de créez un mot de passe incassable dont vous vous souviendrez. Certains d'entre eux utilisent des comptines, des citations de films, le jargon de l'industrie, etc.

Comment vérifier la force de votre mot de passe à l'aide de Python

Vous pouvez créer un programme pour tester la force du mot de passe en vérifiant les caractéristiques ci-dessus. Pour cette version, vous aurez besoin de deux modules: chaîne et collections.

Vous pouvez également utiliser le getpass module pour masquer un mot de passe lorsque l'utilisateur le saisit. Cela permet de protéger votre mot de passe lorsque vous devez le saisir en public. Pour installer getpass dans votre environnement local, ouvrez un terminal et tapez :

pépin installer getpass4

Vous pouvez utiliser la classe String pour vérifier si un caractère est une lettre, un chiffre ou un symbole. Vous pouvez utiliser des collections pour vérifier s'il y a des caractères dans le mot de passe qui se répètent.

Utilisez le mot clé def pour définir une fonction nommée check_password_strength() et passez le mot de passe que vous obtiendrez en paramètre.

Initialisez six variables: nombre_alpha_inférieur, upper_alpha_count, number_count, special_char_count, longueur, commun à zéro. Ceux-ci vont vérifier la présence d'un alphabet minuscule, alphabet majuscule, chiffres, caractères spéciaux, longueur, répétition de caractères dans un mot de passe.

Transmettez le mot de passe que vous obtenez de l'utilisateur au liste() fonction pour le convertir en une liste de caractères. À l'aide de la boucle for, parcourez chaque caractère de la liste. Utilisez l'instruction if-else pour vérifier si le caractère est un alphabet minuscule, un alphabet majuscule, un nombre ou un caractère spécial et mettre à jour le nombre respectivement.

Vous pouvez supposer que tout autre élément de l'alphabet ou du nombre est un caractère spécial. Pour plus de restriction, vous pouvez stocker des caractères spéciaux sous forme de chaîne et vérifier si le caractère du mot de passe y est présent. De plus, certains sites Web vous permettent d'utiliser des espaces blancs dans un mot de passe. Vous pouvez définir une variable différente et l'incrémenter ou la considérer dans le nombre de caractères spéciaux lui-même.

importer chaîne
importer collections

définitivementcheck_password_strength(mot de passe):
lower_alpha_count = upper_alpha_count = number_count = special_char_count = longueur = commun = 0

pour char dans liste(mot de passe):
sicarboniser dans string.ascii_lowercase :
nombre_alpha_inférieur += 1
elif carboniser dans string.ascii_uppercase :
upper_alpha_count += 1
elif carboniser dans string.digits :
nombre_compte += 1
autre:
special_char_count += 1

Vous aurez besoin d'une liste de mots de passe ou d'une base de données pour vérifier si le mot de passe de l'utilisateur est commun. Vous pouvez télécharger une liste d'un million de mots de passe les plus populaires à partir de Référentiel GitHub Common-Credential de SecLists.

Enregistrez le fichier texte sous common_password_list.txt. Utilisez l'instruction with pour effectuer la gestion des exceptions et ouvrir le fichier de mots de passe en mode lecture. Utilisez le lire() fonction pour obtenir le contenu présent dans le fichier et le stocker dans une variable nommée content.

Si le mot de passe saisi par l'utilisateur ne figure pas dans la liste des mots de passe communs, incrémentez la valeur de la variable commune de un.

avecouvrir("common_password_list.txt", 'r') commedéposer:
contenu = fichier.read()

si le mot de passe n'est pas dans le contenu :
commun += 1

Pour vérifier la longueur du mot de passe, il suffit de le passer au len() fonction et vérifiez si elle est supérieure ou égale à douze. Si c'est le cas, incrémentez la valeur de la variable de longueur.

silen(mot de passe) >= 12:
longueur += 1

Pour vérifier la répétition des caractères dans le mot de passe, utilisez la sous-classe Counter de Collections. Le compteur est une collection non ordonnée de paires de clé et de valeur où la clé est l'élément lui-même et la valeur est le nombre d'éléments.

Utilisez la méthode de compréhension de liste pour créer une liste de caractères répétés à partir du dictionnaire que vous obtenez à l'aide de collections. Parcourez le dictionnaire et vérifiez si le nombre de caractères est supérieur à un. Si le nombre est supérieur, ajoutez-le à une liste et stockez-le dans répété.

 countOfWords = collections. Compteur (mot de passe)
répété = [i pour i dans countOfWords if countOfWords[i] > 1]

Maintenant que vous avez les valeurs des caractéristiques individuelles, initialisez une variable nommée force à zéro. Comme son nom l'indique, vous utiliserez cette variable pour vérifier la force du mot de passe. Le système de notation est sur sept, un point pour chaque inclusion d'un caractère et caractéristique d'un mot de passe fort.

Vérifiez si le nombre d'alphabets minuscules, majuscules, chiffres, caractères spéciaux est supérieur ou égal à un et incrémentez la force de un pour chaque présence. De même, vérifiez si la longueur et la variable commune sont égales à un et si la longueur du caractère répété est égale à zéro. Si vrai, incrémentez la valeur de la variable de force.

 force = 0

si lower_alpha_count >= 1 :
force += 1

si upper_alpha_count >= 1 :
force += 1

si nombre_compte >= 1 :
force += 1

si special_char_count >= 1 :
force += 1

si longueur == 1 :
force += 1

si commun == 1 :
force += 1

silen(répété)== 0:
force += 1

Utilisez la chaîne multiligne (trois guillemets) pour afficher plusieurs lignes de texte dans une seule instruction d'impression. Utilisez l'interpolation Sring littérale ou les chaînes f ou pour afficher le nombre de caractéristiques. Vous pouvez y parvenir en écrivant F au début de la chaîne dans l'instruction print et placez les variables entre accolades. Vous utilisez l'interpolation de chaîne car le contenu de l'instruction print est une chaîne, mais la valeur des variables est un entier.

imprimer(F"""Votre mot de passe a :- 
{lower_alpha_count} lettres minuscules
{upper_alpha_count} lettres majuscules
{number_count} chiffres
{special_char_count} caractères spéciaux
{longueur} longueur
{commun} commun
{répété} répété
"Score du mot de passe: {force}/7""")

Enfin, utilisez l'instruction input pour recevoir le mot de passe de l'utilisateur et le transmettre au check_password_strength fonction. En fonction de la force du mot de passe, le programme affichera le score ainsi que le nombre de caractéristiques présentes dans le mot de passe.

mot de passe = entrée("Entrer le mot de passe: ")
check_password_strength (mot de passe)

Sortie du vérificateur de force de mot de passe

Lors de la saisie d'un mot de passe fort basé sur les caractéristiques mentionnées, le programme Python affiche la force comme 7/7 :

Lors de la saisie d'un mot de passe faible et commun, le programme Python affiche la force sous la forme 1/7 :

Mots de passe et sécurité

Bien que vous puissiez définir le mot de passe le plus fort de tous les temps, il existe d'autres moyens pour un pirate de s'introduire dans votre système. 95% des cyberattaques sont le résultat d'une erreur humaine. L'ingénierie sociale est l'une des méthodes les plus couramment utilisées par les pirates. Le pirate peut vous envoyer des liens contrefaits vers des sites Web de médias sociaux ou de commerce électronique qui semblent légitimes, mais qui compromettent votre mot de passe si vous les utilisez.

Pour vous protéger contre ces techniques, assurez-vous de n'ouvrir que des liens provenant d'une source fiable et de ne saisir ou stocker que des informations importantes en toute sécurité.