Cet article partagera avec vous un exemple de code qui utilise des expressions régulières pour déterminer la force d'un mot de passe. Il est très bon et a une valeur de référence. Les amis qui en ont besoin peuvent s'y référer
.apprenez le nouveau modèle de Python, j'ai écrit un article et j'ai découvert que personne ne l'a lu, alors j'ai résumé mon expérience. Personne n'aime la théorie, mais le cœur des gens est dans la pratique. aime la théorie, va simplement à la pratique et affine la théorie dans la pratique. Sans plus tarder, commençons simplement par le code
def password_level(password): weak = re.compile(r'^((\d+)|([A-Za-z]+)|(\W+))$') level_weak = weak.match(password) level_middle = re.match(r'([0-9]+(\W+|\_+|[A-Za-z]+))+|([A-Za-z]+(\W+|\_+|\d+))+|((\W+|\_+)+(\d+|\w+))+',password) level_strong = re.match(r'(\w+|\W+)+',password) if level_weak: print 'password level is weak',level_weak.group() else: if (level_middle and len(level_middle.group())==len(password)): print 'password level is middle',level_middle.group() else: if level_strong and len(level_strong.group())==len(password): print 'password level is strong',level_strong.group()
Expliquez-le
Mot de passe faible : tous les chiffres, symboles, lettres
Mot de passe moyen : chiffres plus symboles, chiffres plus lettres, lettres plus symboles
Mot de passe fort : un mélange de trois.
Je ne suis pas sensible à la casse, j'espère que ceux qui sont intéressés pourront l'écrire eux-mêmes. Le problème se produit avec w car w est équivalent à [A-Za-z0-9_], donc au début, W ne peut pas correspondre à la chaîne contenant un trait de soulignement
Jetons un coup d'oeil au niveau du mot de passe moyen, les chiffres plus les symboles ou les lettres ou _ sont un groupe, les lettres plus les symboles ou les soulignements ou les symboles sont un groupe, les symboles ou les soulignements plus les lettres ou les chiffres sont un groupe, j'ai toujours l'impression que le code semble faux, mais après l'avoir testé, si vous ne trouvez rien d'anormal, utilisez d'abord cette version 0.0.1
Code de test
if name == 'main': passwords = ('11','aa','LL','1a','1_','a_','a1','_1','*a','1a_','1a<') for pw in passwords: password_level(pw) '''----------------------output------------------------ #password level is weak 11 #password level is weak aa #password level is weak LL #password level is middle 1a #password level is middle 1_ #password level is middle a_ #password level is middle a1 #password level is middle _1 #password level is middle *a #password level is strong 1a_ #password level is strong 1a< '''
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!