Zufälliges Passwort generieren in PHP
Passwörter werden im Normalfall vom Benutzer festgelegt, damit dieser sich Passwörter aussuchen kann, die er sich gut merken kann. Nutzt der Benutzer aber z.B. eine Passwort-zurücksetzen-Funktion, so wird ein zufälliges Passwort automatisch generiert und dem Benutzer per Mail zugesendet, damit er sich damit einloggen kann um ein neues zu vergeben.
Ich habe mal eine einfache Funktion geschrieben, mit der ein solches zufälliges Passwort erstellt werden kann
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | function createRandomPassword($length=8,$chars="") { if($chars=="") $chars = "abcdefghijkmnpqrstuvwxyzABCDEFGHIJKLMNPQRSTUVWXYZ0123456789"; srand((double)microtime()*1000000); $i = 0; $pass = '' ; while ($i < $length) { $num = rand() % strlen($chars); $tmp = substr($chars, $num, 1); $pass = $pass . $tmp; $i++; } return $pass; } |
Über den Parameter $length(optional) kann die Anzahl der Zeichen eingestellt werden, wird dieser weggelassen werden standardmäßig 8 Zeichen verwendet.
Der Parameter $chars(optional) kann mit Zeichen befüllt werden, die verwendet werden sollen. Standardmäßig werden hier alle Buchstaben in klein und Groß (ohne „ß“), sowie die Zahlen 0-9 berücksichtigt. Sollen noch mehr Zeichen (z.B. Sonderzeichen wie „?“,“!“,“_“ etc.) zur Generierung des Passwortes verwendet werden, so kann man sie in einem String in dem Parameter $chars angeben.
Beispiele
8 Zeichen langes Passwort mit Zahlen und Buchstaben, ohne Sonderzeichen
1 | echo createRandomPassword(); |
20 Zeichen langes Passwort mit Zahlen und Buchstaben, ohne Sonderzeichen
1 | echo createRandomPassword(20); |
10 Zeichen Langes Passwort nur aus Zahlen und !
1 | echo createRandomPassword(10,"0123456789!"); |
Ich hoffe die Funktion konnte euch helfen, wenn ihr Fragen und Anregungen habt, nehme ich diese gerne im Kommentarbereich entgegen.
Neueste Kommentare