Expression régulière pour valider un mot de passe

Expression régulière pour valider un mot de passe

L’expression régulière du mot de passe peut être utilisée pour contrôler la forme d’un mot de passe et qu’un mot de passe fourni est suffisamment fort pour offrir une meilleure protection contre les attaques par force brute des robots.

Expression régulière pour un mot de passe solide

L’expression régulière ci-dessous vérifie qu’un mot de passe :

  • Formé d’un minimum de 8 caractères. Ajustez-le en modifiant {8,}

  • Au moins une lettre majuscule. Vous pouvez supprimer cette condition en supprimant (?=.* ?[A-Z])

  • Au moins une lettre minuscule. Vous pouvez supprimer cette condition en supprimant (?=.* ?[a-z])

  • Au moins un chiffre. Vous pouvez supprimer cette condition en supprimant (?=.* ?[0-9])

  • Au moins un caractère spécial, Vous pouvez supprimer cette condition en supprimant (?=.* ?[#?!@$%^&*-])

javascript
/^(?=.*?[A-Z])(?=.*?[a-z])(?=.*?[0-9])(?=.*?[#?!@$%^&*-]).{8,}$/

Version JavaScript

Le format d’un email valide est le suivant email@domain.com. La fonction prend en paramètre l’adresse email et lance ensuite une comparaison avec l’expression régulière. S’il ne trouve aucune correspondance, il échoue la validation et la fonction renvoie false, si la correspondance renvoie true, l’email aura un format correct et la fonction retournera true. La fonction Javascript pour valider le courriel

javascript
/**
 * Valider un mot de passe
 *
 * Si le mot de passe n'est pas assez sécurisé, retournez false
 *
 * @param mdp
 * @return Boolean
 */
function validateMDP(mdp){
    var Reg = new RegExp(/^(?=.*?[A-Z])(?=.*?[a-z])(?=.*?[0-9])(?=.*?[#?!@$%^&*-]).{8,}$/);
    return Reg.test(mdp);
}

Comment utiliser la fonction Javascript

La meilleure façon de l’utiliser sera dans une déclaration IF comme ci-dessous.

javascript
if(validateMDP(mdp)){
     alert("Mot de passe  valide");
} else {
     alert("Mot de passe invalide");
}

See the Pen
Valider un email avec une expression régulière
by Damien Flandrin (@dam62500)
on CodePen.0

Version PHP

php
/*
 * valider mot de passe
 * @param $mdp
 */
 function isValidMDP($mdp)
 {
   return preg_match('/^(?=.*?[A-Z])(?=.*?[a-z])(?=.*?[0-9])(?=.*?[#?!@$%^&*-]).{8,}$/', $mdp)
 }

Version HTML

Vous pouvez vérifier en HTML en amont de la validation en php et javascript via l’attribut pattern vous permettant de mettre en avant avec du CSS si le mot de passe respecte l’expression régulière.

html
 <input
      name="mdp"
      type="text"
      pattern="(?=.*?[A-Z])(?=.*?[a-z])(?=.*?[0-9])(?=.*?[#?!@$%^&*-]).{8,}"
     />

See the Pen
Vérifier une date avec une expression régulière en HTML
by Damien Flandrin (@dam62500)
on CodePen.0

Notes sur la validation regex des mots de passe

Bien que cette validation regex soit mieux que rien, dans les situations où une sécurité supplémentaire est nécessaire, vous devriez également vérifier le mot de passe saisi pour un ensemble de mots de passe couramment utilisés comme :

  • .IOlZPf1
  • !A1o2e3r4
  • etc

HTMLJavaScriptPHP

Damien Flandrin Développeur web depuis 2010, créateur de Gekkode et d’Email Impact. Chaque article est testé sur un projet réel avant publication. Contact
Newsletter

Les nouveaux tests, tutoriels et projets, par e-mail.

Tests reproductibles, code versionné, résultats datés. Jamais de spam.