Die Funktion str_split in PHP teilt eine Zeichenfolge in ein Array auf. Jedes Array -Element enthält ein Zeichen in der Zeichenfolge. Die grundlegende Syntax ist wie folgt:
str_split(string $string, int $length = 1): array
$ String : Die Zeichenfolge, die geteilt wird.
$ Länge : Die Länge jedes Array -Elements, Standard auf 1.
Zum Beispiel wird das Aufrufen von str_split ("abcdef") ['a', 'b', 'c', 'd', 'e', 'f'] zurückrufen.
Um die Stärke eines Passworts zu bestimmen, betrachten wir normalerweise die folgenden Aspekte:
Länge : Die Länge des Passworts sollte lang genug sein, normalerweise sind mindestens 8 Zeichen erforderlich.
Zahlen einschließen : Das Passwort sollte Nummern enthalten.
Großbuchstaben einschließen : Das Passwort sollte mindestens einen Großbuchstaben enthalten.
Schließen Sie Kleinbuchstaben ein : Das Passwort sollte mindestens einen Kleinbuchstaben enthalten.
Enthält Sonderzeichen : Das Passwort sollte mindestens ein spezielles Zeichen wie @ , # , $ usw. enthalten.
Wir können Str_split verwenden, um das Passwort in ein Array aufzuteilen und jedes Zeichen im Array zu überprüfen, um festzustellen, ob das Passwort die oben genannten Festigkeitsanforderungen erfüllt. Hier ist ein einfacher Beispielcode:
<?php
function check_password_strength($password) {
// Überprüfen Sie die Passwortlänge
if (strlen($password) < 8) {
return "Passwortlänge ist mindestens 8 Charaktere";
}
// verwenden str_split Teilen Sie Passwörter als Arrays auf
$password_array = str_split($password);
// Flaggen initialisieren
$has_upper = false;
$has_lower = false;
$has_digit = false;
$has_special = false;
// Durch das Array iterieren,检查每Charaktere
foreach ($password_array as $char) {
if (ctype_upper($char)) {
$has_upper = true;
} elseif (ctype_lower($char)) {
$has_lower = true;
} elseif (is_numeric($char)) {
$has_digit = true;
} elseif (preg_match('/[!@#$%^&*(),.?":{}|<>]/', $char)) {
$has_special = true;
}
}
// Überprüfen Sie, ob alle Bedingungen erfüllt sind
if (!$has_upper) {
return "Passwörter müssen mindestens eine Großbuchstabe enthalten";
}
if (!$has_lower) {
return "Das Passwort muss mindestens einen Kleinbuchstabenbuchstaben enthalten";
}
if (!$has_digit) {
return "Das Passwort muss mindestens eine Nummer enthalten";
}
if (!$has_special) {
return "Das Passwort muss mindestens einen speziellen Charakter enthalten";
}
return "Passwortstärke";
}
// Probentest
$password = "P@ssw0rd";
echo check_password_strength($password); // Ausgabe:Passwortstärke
?>
str_split ($ password) : Teilen Sie die Kennwortzeichenfolge in ein Array auf, um die Zeichenprüfung zu erleichtern.
CTYPE_UPPER ($ char) : Überprüfen Sie, ob es sich bei dem Charakter um Großbuchstaben handelt.
CTYPE_LOWER ($ char) : Überprüfen Sie, ob das Zeichen Kleinbuchstaben ist.
is_numeric ($ char) : Überprüfen Sie, ob das Zeichen eine Nummer ist.
preg_match ('/[!@#$%^&*(),.? ": {} | <>]/', $ char) : Überprüfen Sie, ob das Zeichen ein spezielles Zeichen ist.
Obwohl die oben genannten Erkennungsregeln die Sicherheit von Kennwörtern effektiv verbessern können, können wir die Strenge der Kennwortnachweis weiter verbessern. Halten:
Eingeschränkte Passwörter enthalten keine gängigen Informationen über Benutzer (wie Benutzername, E -Mail, Geburtstag usw.).
Verschlüsseln Sie Kennwörter mit Hashing-Algorithmen wie SHA-256 oder BCRYPT, um sicherzustellen, dass sie nicht direkt geknackt werden können, selbst wenn das Passwort durchgesickert ist.