
Een reguliere expressie voor wachtwoorden controleert de vorm van een wachtwoord en of het aangeleverde wachtwoord sterk genoeg is om brute-force-aanvallen van bots te weerstaan.
Een reguliere expressie voor een sterk wachtwoord
De reguliere expressie hieronder controleert of een wachtwoord:
-
Uit minstens 8 tekens bestaat. Dat stel je bij via {8,}
-
Minstens één hoofdletter bevat. Deze voorwaarde vervalt zodra je dit weghaalt: (?=.* ?[A-Z])
-
Minstens één kleine letter bevat. Deze voorwaarde vervalt zodra je dit weghaalt: (?=.* ?[a-z])
-
Minstens één cijfer bevat. Deze voorwaarde vervalt zodra je dit weghaalt: (?=.* ?[0-9])
-
Minstens één speciaal teken bevat. Deze voorwaarde vervalt zodra je dit weghaalt: (?=.* ?[#?!@$%^&*-])
/^(?=.*?[A-Z])(?=.*?[a-z])(?=.*?[0-9])(?=.*?[#?!@$%^&*-]).{8,}$/JavaScript-versie
De functie krijgt het wachtwoord als parameter binnen en vergelijkt dat met de reguliere expressie. Is er geen overeenkomst, dan mislukt de controle en geeft de functie false terug, past het wachtwoord wel bij het patroon, dan geeft ze true terug. Hier is de JavaScript-functie die het wachtwoord valideert
/**
* Een wachtwoord valideren
*
* Als het wachtwoord niet veilig genoeg is, geef false terug
*
* @param mdp
* @return Boolean
*/
function validateMDP(mdp){
var Reg = new RegExp(/^(?=.*?[A-Z])(?=.*?[a-z])(?=.*?[0-9])(?=.*?[#?!@$%^&*-]).{8,}$/);
return Reg.test(mdp);
}Zo gebruik je de JavaScript-functie
Het handigst zet je haar in een IF-statement, zoals hieronder.
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
PHP-versie
/*
* wachtwoord valideren
* @param $mdp
*/
function isValidMDP($mdp)
{
return preg_match('/^(?=.*?[A-Z])(?=.*?[a-z])(?=.*?[0-9])(?=.*?[#?!@$%^&*-]).{8,}$/', $mdp)
}HTML-versie
Je kunt al in HTML controleren, nog vóór de validatie in PHP en JavaScript: met het attribuut pattern laat je met CSS zien of het wachtwoord aan de reguliere expressie voldoet.
<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
Deze controle met een reguliere expressie is beter dan niets. Waar extra beveiliging telt, leg je het ingevoerde wachtwoord daarnaast langs een lijst met veelgebruikte wachtwoorden, zoals:
- .IOlZPf1
- !A1o2e3r4
- etc


