
Wyrażenie regularne do haseł służy do sprawdzenia, jak zbudowane jest hasło, i do upewnienia się, że podane hasło jest dość mocne, by wytrzymać atak siłowy prowadzony przez boty.
Wyrażenie regularne dla mocnego hasła
Poniższe wyrażenie regularne sprawdza, czy hasło:
-
Ma co najmniej 8 znaków. Zmienisz to, edytując {8,}
-
Zawiera co najmniej jedną wielką literę. Ten warunek usuniesz, kasując (?=.* ?[A-Z])
-
Zawiera co najmniej jedną małą literę. Ten warunek usuniesz, kasując (?=.* ?[a-z])
-
Zawiera co najmniej jedną cyfrę. Ten warunek usuniesz, kasując (?=.* ?[0-9])
-
Zawiera co najmniej jeden znak specjalny. Ten warunek usuniesz, kasując (?=.* ?[#?!@$%^&*-])
/^(?=.*?[A-Z])(?=.*?[a-z])(?=.*?[0-9])(?=.*?[#?!@$%^&*-]).{8,}$/Wersja JavaScript
Funkcja przyjmuje hasło jako parametr i porównuje je z wyrażeniem regularnym. Jeśli nic nie pasuje, walidacja się nie udaje i funkcja zwraca false, jeśli dopasowanie się powiedzie, hasło ma właściwą postać i funkcja zwraca true. Oto funkcja JavaScript sprawdzająca hasło
/**
* Walidacja hasła
*
* Jeśli hasło nie jest wystarczająco bezpieczne, zwróć false
*
* @param mdp
* @return Boolean
*/
function validateMDP(mdp){
var Reg = new RegExp(/^(?=.*?[A-Z])(?=.*?[a-z])(?=.*?[0-9])(?=.*?[#?!@$%^&*-]).{8,}$/);
return Reg.test(mdp);
}Jak używać tej funkcji JavaScript
Najprościej wykorzystać ją wewnątrz instrukcji IF, tak jak poniżej.
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
Wersja PHP
/*
* walidacja hasła
* @param $mdp
*/
function isValidMDP($mdp)
{
return preg_match('/^(?=.*?[A-Z])(?=.*?[a-z])(?=.*?[0-9])(?=.*?[#?!@$%^&*-]).{8,}$/', $mdp)
}Wersja HTML
Pole możesz sprawdzić także w HTML, przed walidacją w PHP i JavaScripcie, atrybutem pattern: pozwala on pokazać stylami CSS, czy hasło pasuje do wyrażenia regularnego.
<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
Taka walidacja regexem jest lepsza niż nic, ale wszędzie tam, gdzie potrzebujesz wyższego poziomu bezpieczeństwa, sprawdzaj wpisane hasło również na liście haseł najczęściej używanych, takich jak:
- .IOlZPf1
- !A1o2e3r4
- etc


