Maison >développement back-end >tutoriel php >Méthode d'expression régulière PHP pour vérifier la complexité du mot de passe
Avec l'amélioration progressive de la sensibilisation à la sécurité des réseaux, de nombreux sites Web ont commencé à exiger que les utilisateurs utilisent des mots de passe complexes. En tant que langage de programmation largement utilisé, PHP a naturellement besoin d'une méthode correspondante pour vérifier la complexité des mots de passe. Cet article présentera la méthode de vérification de la complexité des mots de passe à l'aide d'expressions régulières PHP.
1. Exigences en matière de complexité du mot de passe
Avant de concevoir l'expression régulière pour la vérification de la complexité du mot de passe, nous devons d'abord déterminer les exigences en matière de complexité du mot de passe. De manière générale, les exigences en matière de complexité des mots de passe incluent les aspects suivants :
2. Méthode d'expression régulière PHP pour vérifier la complexité du mot de passe
Il est très simple d'utiliser des expressions régulières pour vérifier la longueur du mot de passe, il suffit d'utiliser ".{8,16}". Parmi eux, le point signifie qu'il peut correspondre à n'importe quel caractère, et le 8 dans le bouclé. Les parenthèses signifient qu'il doit correspondre à au moins 8 caractères, 16. Indique que jusqu'à 16 caractères peuvent correspondre
Exemple de code :
if(preg_match('/.{8,16}/',$password)){ echo '密码长度符合要求'; }else{ echo '密码长度不符合要求'; }
La vérification des types de caractères du mot de passe est compliquée et nécessite le utilisation de "[]" dans les expressions régulières pour représenter l'ensemble des caractères correspondants. La méthode est la suivante :
//验证是否包含数字 if(preg_match('/[0-9]+/',$password)){ $score++; } //验证是否包含小写字母 if(preg_match('/[a-z]+/',$password)){ $score++; } //验证是否包含大写字母 if(preg_match('/[A-Z]+/',$password)){ $score++; } //验证是否包含特殊字符 if(preg_match('/[!@#$%^&*()_+-=[]{}|;:'",./<>?]+/',$password)){ $score++; } if($score>=3){ echo '密码复杂度符合要求'; }else{ echo '密码复杂度不符合要求'; }
Dans le code ci-dessus, nous utilisons plusieurs expressions régulières pour vérifier si le mot de passe répond aux exigences. Parmi elles, le carré. les crochets "[]" indiquent un jeu de caractères correspondant et le signe plus "+" indique que le jeu de caractères doit apparaître au moins une fois.
Vérifier si les mots de passe courants sont inclus. également relativement simple. Il vous suffit d'utiliser le "|" dans l'expression régulière pour représenter la relation "ou". La méthode d'implémentation spécifique est la suivante :
//常用密码列表 $commonPasswords = array('123456','admin','password','qwerty','12345678'); //验证密码是否为常用密码 if(preg_match('/('.implode('|', $commonPasswords).')/i', $password)){ echo '密码为常用密码'; }else{ echo '密码不为常用密码'; }
Dans le code ci-dessus, nous utilisons la fonction d'implosion pour connecter les éléments. dans la liste de mots de passe couramment utilisée avec des lignes verticales pour former une expression régulière, parmi elles, les parenthèses "()" indiquent que la correspondance est une chaîne et "i" signifie ignorer la casse lors de la correspondance
3. La méthode de vérification de la complexité des mots de passe avec les expressions régulières PHP comprend principalement la vérification de la longueur du mot de passe, du type de caractère du mot de passe et s'il contient des mots de passe courants. Les programmeurs peuvent concevoir votre propre expression régulière de vérification de la complexité du mot de passe en fonction des besoins spécifiques pour améliorer la sécurité des mots de passe et la rendre plus pratique. utilisateurs.
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!