Maison > développement back-end > tutoriel php > Méthode d'expression régulière PHP pour vérifier la complexité du mot de passe

Méthode d'expression régulière PHP pour vérifier la complexité du mot de passe

WBOY
Libérer: 2023-06-24 11:20:02
original
1781 Les gens l'ont consulté

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 :

  1. Longueur du mot de passe : la longueur du mot de passe ne peut pas être inférieure à une certaine valeur, généralement de 8 à 16 caractères.
  2. Types de caractères : le mot de passe doit contenir des lettres majuscules et minuscules, des chiffres et des caractères spéciaux (tels que !@#$%^&*()_+-=[]{}|;':",./<> ?) Au moins trois d'entre eux
  3. Les mots de passe courants ne peuvent pas être utilisés : le mot de passe ne peut pas contenir de mots de passe courants (tels que : 123456, admin, etc.)

2. Méthode d'expression régulière PHP pour vérifier la complexité du mot de passe

  1. Vérifiez. longueur du mot de passe
  2. .

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 '密码长度不符合要求';
}
Copier après la connexion
  1. Vérification des types de caractères du mot de passe

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 '密码复杂度不符合要求';
}
Copier après la connexion

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.

  1. Vérifier si les mots de passe courants sont inclus

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 '密码不为常用密码';
}
Copier après la connexion

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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal