Maison >développement back-end >Tutoriel Python >Comment utiliser les expressions régulières Python pour vérifier la force des mots de passe

Comment utiliser les expressions régulières Python pour vérifier la force des mots de passe

WBOY
WBOYoriginal
2023-06-23 09:01:392786parcourir

À l’ère numérique d’aujourd’hui, presque tout le monde possède un ou plusieurs mots de passe pour protéger les informations personnelles. Cependant, les mots de passe faibles sont souvent facilement craqués ou piratés, entraînant une fuite d’informations personnelles. Il est donc très important d’établir un mot de passe fort. Python fournit un grand nombre d'outils et de bibliothèques pour les opérations liées à la sécurité et aux mots de passe, y compris les expressions régulières. L'utilisation des expressions régulières de Python peut effectuer des vérifications de base de la force des mots de passe, nous aidant ainsi à éviter d'utiliser des mots de passe faibles et à améliorer la sécurité des informations personnelles.

1. Vérification de la force du mot de passe

Un mot de passe sûr et fiable doit généralement répondre aux trois exigences suivantes :

1. la longueur doit être d'au moins 8 caractères, de préférence 12 caractères ou plus.

2. Contenir différents types de caractères : Il est préférable d'inclure différents types de caractères tels que des chiffres, des lettres majuscules et minuscules, des caractères spéciaux, etc.

3. Évitez d'utiliser des mots, des noms, des anniversaires, etc. courants dans le dictionnaire : utilisez des combinaisons de mots inhabituelles ou des combinaisons de mots de passe ayant des significations raisonnables.

En Python, nous pouvons utiliser des expressions régulières pour vérifier les règles ci-dessus, afin de vérifier la force du mot de passe.

2. Utilisez des expressions régulières Python pour vérifier la force du mot de passe

Tout d'abord, nous devons préparer une variable contenant une expression régulière. Voici un exemple simple d'expression régulière :

import re

password_regex = r'^S*(?=S{8,})(?=S*[a-z])(?=S*[A-Z])(?=S*[d])(?=S*[W])S*$'

Les principales étapes de la formation d'une expression régulière de mot de passe consistent à vérifier respectivement la longueur du mot de passe, les lettres majuscules et minuscules, les chiffres et les symboles spéciaux.

1. Longueur du mot de passe

Utilisez l'expression régulière (?=S{8,}), ce qui signifie qu'elle doit comporter au moins 8 caractères . Parmi eux, (?=...) est une recherche directe, ce qui signifie vérifier si les caractères suivants remplissent les conditions. S représente des caractères non vides, S{8,> représente 8 caractères non vides ou plus. (?=S{8,}),表示至少要有8个字符。其中,(?=...)是正向预查,表示检查紧随其后的字符是否符合条件。S表示非空白字符,S{8,}表示8个或以上的非空白字符。

2、大小写字母

使用正则表达式(?=S*[a-z])(?=S*[A-Z])表示密码中必须包含至少一个小写字母和一个大写字母。其中,[a-z]匹配小写字母,[A-Z]匹配大写字母。(?=S*[a-z])(?=S*[A-Z])分别表示密码中必须包含至少一个小写字母和一个大写字母。

3、数字和特殊字符

使用正则表达式(?=S*[d])(?=S*[W])表示密码中必须包含至少一个数字和一个特殊字符。其中,[d]匹配数字,[W]匹配非字母数字字符。(?=S*[d])(?=S*[W])分别表示密码中必须包含至少一个数字和一个特殊字符。

4、完整密码匹配

使用^S*$表示密码必须由非空白字符组成。^表示字符串的开始,S*表示非空白字符的任意字符,$表示字符串的结束。

接下来,我们可以使用这个正则表达式来检查密码的强度。示例代码如下:

passwords = ['Qwe@1234', 'Pa$$w0rd', 'Password123', 'abcd', '12345678']

for password in passwords:
    result = re.match(password_regex, password)
    if result is None:
        print(password, '不符合要求')
    else:
        print(password, '符合要求')

输出结果:

Qwe@1234 符合要求
Pa$$w0rd 符合要求
Password123 符合要求
abcd 不符合要求
12345678 不符合要求

三、结论

使用Python的正则表达式进行密码强度检查,可以有效避免使用弱密码,提高个人信息的安全性。在实现时,需要注意以下几个点:

1、尽可能使用复杂的密码正则表达式,以确保密码强度的有效性。

2、尝试使用Python的正则表达式库re中的search()

2. Lettres majuscules et minuscules

Utilisez des expressions régulières (?=S*[a-z])(?=S*[A-Z]) Indique que le mot de passe doit contenir au moins une lettre minuscule et une lettre majuscule. Parmi eux, [a-z] correspond aux lettres minuscules et [A-Z] correspond aux lettres majuscules. (?=S*[a-z]) et (?=S*[A-Z]) indiquent respectivement que le mot de passe doit contenir au moins une lettre minuscule et une lettre majuscule.

3, chiffres et caractères spéciaux #🎜🎜##🎜🎜#Utilisez des expressions régulières (?=S*[d])(?=S*[W]) signifie que le mot de passe doit contenir au moins un chiffre et un caractère spécial. Parmi eux, [d] correspond aux nombres et [W] correspond aux caractères non alphanumériques. (?=S*[d]) et (?=S*[W]) indiquent respectivement que le mot de passe doit contenir au moins un chiffre et un caractère spécial. #🎜🎜##🎜🎜#4. Complétez la correspondance du mot de passe #🎜🎜##🎜🎜#Utilisez ^S*$ pour indiquer que le mot de passe doit être composé de caractères non vides. ^ représente le début de la chaîne, S* représente tout caractère autre que les caractères d'espacement et $ représente la fin de la chaîne. #🎜🎜##🎜🎜#Ensuite, nous pouvons utiliser cette expression régulière pour vérifier la force du mot de passe. L'exemple de code est le suivant : #🎜🎜#rrreee#🎜🎜#Résultat de sortie : #🎜🎜#rrreee#🎜🎜# 3. Conclusion #🎜🎜##🎜🎜#L'utilisation des expressions régulières de Python pour vérifier la force du mot de passe peut efficacement éviter Utilisez des mots de passe faibles pour augmenter la sécurité de vos informations personnelles. Lors de la mise en œuvre, vous devez prêter attention aux points suivants : #🎜🎜##🎜🎜#1. Utilisez autant que possible des expressions régulières de mot de passe complexes pour garantir l'efficacité de la force du mot de passe. #🎜🎜##🎜🎜#2. Essayez d'utiliser la fonction search() dans la bibliothèque d'expressions régulières de Python re, qui recherchera dans une chaîne de texte donnée. , renvoie le premier objet correspondant qui répond aux conditions de l'expression régulière, puis affirme l'existence de l'objet (pas True ou False). #🎜🎜##🎜🎜#3. L'utilisation d'instructions de boucle pour vérifier la force du mot de passe par lots peut améliorer efficacement l'efficacité. #🎜🎜##🎜🎜#Cet article présente brièvement le processus de base et les points clés de l'utilisation des expressions régulières Python pour vérifier la force du mot de passe, et fournit une expression régulière simple et puissante pour vérifier si un mot de passe répond aux spécifications de sécurité. Dans l'application réelle, d'autres facteurs et fonctions doivent être pris en compte pour répondre à davantage d'exigences en matière de sécurité des mots de passe et aux besoins des scénarios. #🎜🎜#

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn