Espressione regolare per validare una password sicura

L'espressione regolare per le password serve a controllare la forma di una password e a verificare che sia abbastanza robusta da resistere agli attacchi a forza bruta dei bot. Qui trovi il pattern pronto all'uso e le sue varianti.

Espressione regolare per validare una password sicura

L’espressione regolare per le password serve a controllare la forma di una password e a verificare che quella ricevuta sia abbastanza robusta da resistere agli attacchi a forza bruta dei bot.

Espressione regolare per una password solida

L’espressione regolare qui sotto verifica che una password:

  • Abbia almeno 8 caratteri. Regolalo modificando {8,}

  • Contenga almeno una lettera maiuscola. Puoi togliere questa condizione eliminando (?=.* ?[A-Z])

  • Contenga almeno una lettera minuscola. Puoi togliere questa condizione eliminando (?=.* ?[a-z])

  • Contenga almeno una cifra. Puoi togliere questa condizione eliminando (?=.* ?[0-9])

  • Contenga almeno un carattere speciale. Puoi togliere questa condizione eliminando (?=.* ?[#?!@$%^&*-])

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

Versione JavaScript

La funzione riceve la password come parametro e la confronta con l’espressione regolare. Se non trova nessuna corrispondenza la validazione fallisce e la funzione restituisce false, se la corrispondenza riesce, la password ha il formato corretto e la funzione restituisce true. Ecco la funzione JavaScript che valida la password

javascript
/**
 * Valida una password
 *
 * Se la password non è abbastanza sicura, restituisce false
 *
 * @param mdp
 * @return Boolean
 */
function validateMDP(mdp){
    var Reg = new RegExp(/^(?=.*?[A-Z])(?=.*?[a-z])(?=.*?[0-9])(?=.*?[#?!@$%^&*-]).{8,}$/);
    return Reg.test(mdp);
}

Come usare la funzione JavaScript

Il modo migliore per usarla è dentro un’istruzione IF, come qui sotto.

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

Versione PHP

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

Versione HTML

Puoi fare un controllo in HTML a monte della validazione in PHP e JavaScript, tramite l’attributo pattern: ti permette di evidenziare con il CSS se la password rispetta l’espressione regolare.

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

Note sulla validazione delle password con le regex

Questa validazione con regex è meglio di niente, ma quando serve un livello di sicurezza in più dovresti anche confrontare la password inserita con un elenco di password molto diffuse, per esempio:

  • .IOlZPf1
  • !A1o2e3r4
  • ecc.

HTMLJavaScriptPHP

Damien Flandrin Sviluppatore web dal 2010, creatore di Gekkode e di Email Impact. Ogni articolo è testato su un progetto reale prima della pubblicazione. Contatti
Newsletter

I nuovi test, tutorial e progetti, via e-mail.

Test riproducibili, codice versionato, risultati datati. Mai spam.