Hallo,
ich würde gerne in PHP zufällige Passworter mit einer Länge von 8 Zeichen generieren.
Ich habe das momentan so gelöst:
$small = "abcdefghikmnopqrstuwxyz";
$caps = "ABCDEFGHJKLMNPQRSTUVWXYZ";
$num = "023456789";
$spex = "-_@#$%&§/[]()\=+*<>?!";
$charset = "$small$caps$num$spex";
$pwd = NULL;
while (strlen($pwd) < 8) {
$char = $charset[rand(0, strlen($charset)-1)];
$pwd = "$pwd$char";
}
echo $pwd;
Alles anzeigen
Dabei gibt es nun ein Problem:
Ich bekomme teilweise Passwörter geliefert, die nur 2 Stellen haben oder ganz leer sind. Außerdem enthalten die ausgegebenen Zeichenketten oft ein Â.
Das hängt damit zusammen, dass Zeichen wie "<", ">", und "&" in HTML spezielle Bedeutungen haben. Wenn dahinter dann kein sinnvoles HTML kommt wird das Passwort einfach abgeschnitten und wenn sinnvoller Code folgt, entstehen Zeichen, die in $charset nicht enthalten sind.
Um das zu vermeiden, müsste ich die Zeichenfolge $pwd in PHP als für HTML unbedeutsam kennzeichnen, weil ich $spex der Übersicht wegen so lassen will wie es ist. Wie macht man sowas?
Stellt sich dieses Problem eigentlich auch beim Versand der PWs per Mail und der Abfrage am Login?
Wohl eher nicht oder?
Danke im Voraus!