Passwort mit Regex validieren: JavaScript, PHP und HTML

Ein regulärer Ausdruck für Passwörter prüft die Form eines Passworts und stellt sicher, dass das übergebene Passwort stark genug ist, um Brute-Force-Angriffen von Bots standzuhalten. Ein regulärer Ausdruck für ein starkes Passwort Der reguläre Ausdruck unten prüft, ob ein Passwort:

Passwort mit Regex validieren: JavaScript, PHP und HTML

Ein regulärer Ausdruck für Passwörter prüft die Form eines Passworts und stellt sicher, dass das übergebene Passwort stark genug ist, um Brute-Force-Angriffen von Bots standzuhalten.

Ein regulärer Ausdruck für ein starkes Passwort

Der reguläre Ausdruck unten prüft, ob ein Passwort:

  • Aus mindestens 8 Zeichen besteht. Anpassen lässt sich das über {8,}

  • Mindestens einen Großbuchstaben enthält. Diese Bedingung entfällt, wenn du das hier entfernst: (?=.* ?[A-Z])

  • Mindestens einen Kleinbuchstaben enthält. Diese Bedingung entfällt, wenn du das hier entfernst: (?=.* ?[a-z])

  • Mindestens eine Ziffer enthält. Diese Bedingung entfällt, wenn du das hier entfernst: (?=.* ?[0-9])

  • Mindestens ein Sonderzeichen enthält. Diese Bedingung entfällt, wenn du das hier entfernst: (?=.* ?[#?!@$%^&*-])

javascript
/^(?=.*?[A-Z])(?=.*?[a-z])(?=.*?[0-9])(?=.*?[#?!@$%^&*-]).{8,}$/

JavaScript-Version

Die Funktion nimmt das Passwort als Parameter entgegen und vergleicht es mit dem regulären Ausdruck. Gibt es keine Übereinstimmung, scheitert die Prüfung und die Funktion liefert false zurück, passt das Passwort dagegen zum Muster, liefert sie true. Hier die JavaScript-Funktion, die das Passwort validiert

javascript
/**
 * Ein Passwort validieren
 *
 * Wenn das Passwort nicht sicher genug ist, false zurückgeben
 *
 * @param mdp
 * @return Boolean
 */
function validateMDP(mdp){
    var Reg = new RegExp(/^(?=.*?[A-Z])(?=.*?[a-z])(?=.*?[0-9])(?=.*?[#?!@$%^&*-]).{8,}$/);
    return Reg.test(mdp);
}

So nutzt du die JavaScript-Funktion

Am einfachsten setzt du sie in einer IF-Anweisung ein, wie unten.

javascript
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-Version

php
/*
 * Passwort validieren
 * @param $mdp
 */
 function isValidMDP($mdp)
 {
   return preg_match('/^(?=.*?[A-Z])(?=.*?[a-z])(?=.*?[0-9])(?=.*?[#?!@$%^&*-]).{8,}$/', $mdp)
 }

HTML-Version

Du kannst schon im HTML prüfen, vor der Validierung in PHP und JavaScript: Über das Attribut pattern lässt sich per CSS hervorheben, ob das Passwort dem regulären Ausdruck entspricht.

html
 <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

Hinweise zur Passwortprüfung per Regex

Diese Prüfung per regulärem Ausdruck ist besser als nichts. Wo es auf zusätzliche Sicherheit ankommt, solltest du das eingegebene Passwort außerdem gegen eine Liste gängiger Passwörter abgleichen, etwa:

  • .IOlZPf1
  • !A1o2e3r4
  • etc

HTMLJavaScriptPHP

Damien Flandrin Webentwickler seit 2010, Gründer von Gekkode und Email Impact. Jeder Artikel wird vor der Veröffentlichung an einem echten Projekt getestet. Kontakt
Newsletter

Neue Tests, Tutorials und Projekte, per E-Mail.

Reproduzierbare Tests, versionierter Code, datierte Ergebnisse. Niemals Spam.