Aktueller Standort: Startseite> Neueste Artikel> Verwenden Sie Str_split, um die Erkennung der Kennwortstärke zu realisieren

Verwenden Sie Str_split, um die Erkennung der Kennwortstärke zu realisieren

M66 2025-05-28

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.

2. Regeln zur Erkennung von Passwortstärke Erkennung

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.

3.. Verwenden Sie die Funktion Str_split zur Kennwortnachweis

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

?>

4. Code Parsen

  • 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.

5. Verbesserung der Passwortsicherheit weiter

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.