ChrisB: Passwortkomplexität

Beitrag lesen

Hi,

wie kann ich in PHP bestimmen, dass ein Passwort mindestens ein Kleinbuchstabe, ein Großbuchstaben, eine Zahl und ein Sonderzeichen enthalten muss?

In dem du diese Bedingungen jeweils einzeln überprüfst?

Bei meiner Suche bin ich auf preg_match gestoßen, jedoch tue ich mir beim regulären Ausdruck schwer.
preg_match("/[0-9a-zA-Z]/", $passwort)
wenn ich das so überprüfe, sagt dies nur aus, dass ein Kleinbuchstabe, ein Großbuchstaben oder eine Zahl enthalten muss.

Das alles in einem Ausdruck zu prüfen, ist aufwendig - weil du ja die Reihenfolge, in der die einzelnen Zeichen vorkommen, nicht festlegen willst.

Das mit den Sonderzeichen sollte so [^0-9a-zA-Z] gehen, oder?

Das kommt darauf an, wie du „Sonderzeichen“ definierst.

„Sonderzeichen“ in Passwörtern zu *verlangen*, ist übrigens nicht unbedingt eine gute Idee. Die können auf anderen Tastaturen ganz woanders liegen, als man das vom heimischen Rechner gewohnt ist, u.U. sind sie auch gar nicht direkt erreichbar. Das kann die Passworteingabe an einem Fremdrechner sehr mühsam machen, ggf. auch ganz verhindern.

MfG ChrisB

--
The most exciting phrase to hear in science, the one that heralds new discoveries, is not “Eureka!” but “That's funny...” [Isaac Asimov]