mi piaceva la risposta di r3bel, così ho avuto un gioco con esso e si è conclusa con il seguente come funzione password controllo:
function password_strength_check($password, $min_len = 8, $max_len = 70, $req_digit = 1, $req_lower = 1, $req_upper = 1, $req_symbol = 1) {
// Build regex string depending on requirements for the password
$regex = '/^';
if ($req_digit == 1) { $regex .= '(?=.*\d)'; } // Match at least 1 digit
if ($req_lower == 1) { $regex .= '(?=.*[a-z])'; } // Match at least 1 lowercase letter
if ($req_upper == 1) { $regex .= '(?=.*[A-Z])'; } // Match at least 1 uppercase letter
if ($req_symbol == 1) { $regex .= '(?=.*[^a-zA-Z\d])'; } // Match at least 1 character that is none of the above
$regex .= '.{' . $min_len . ',' . $max_len . '}$/';
if(preg_match($regex, $password)) {
return TRUE;
} else {
return FALSE;
}
}
lunghezze massimi/minimi sono di default o regolabile, ogni esigenza è attivo di default, ma può essere disattivato, e volevo supportare qualsiasi simbolo in modo che l'ultima esigenza sia "tutto ciò che non è uno dei tipi sopra", piuttosto che un set fisso di simboli.
fonte
2017-02-20 14:49:28
Si prega di considerare che consentire password più lunghe preferisco che il mio sia di 20 + caratteri, e non ti farà male permetterlo. Non capisco i siti che hanno una lunghezza massima - li memorizzi come hash e qual è il problema? –
@Dragon Ho aumentato il numero massimo di 50 caratteri. È un sito semplice e credo che stavo pensando che 8-12 caratteri sarebbero più facili da ricordare per le persone e meno probabilità di dover reimpostare la password. Ma come hai detto tu, con la password crittografata, non è davvero un grosso problema. –
lascio che lastpass ricordi tutte le mie password per me :-) –