Jeder Programmierer der früher oder später eine Registration erstellen will, wird um eines nicht herum kommen: Ein Passwortgenerator. Die meisten dürften wissen, wie zufällige Zahlen generiert werden – ganz anders sieht es jedoch bei Buchstaben aus. Hier ein Beispiel mit der Funktion chr():
function password($length = 10) { $pass = ""; for ($i = 0; $i < $length; $i++) { $rand = rand(0, 1) ? rand(65, 90) : rand(97, 122); $pass .= chr($rand); } return $pass; }
Was passiert genau? Beim Funktionsaufruf wird erstmal ein leerer String namens “pass” erstellt. Danach wird in einer for-Schleife Buchstaben für Buchstaben an “pass” angehängt. Dazu wird eine zufällige Zahl zwischen 65-90 oder 97-122 generiert, die wir danach an chr() übergeben. Die Funktion chr() erwartet den Indexwert eines ASCII-Zeichens. Ein weiterer Weg um ein Zufallspasswort zu generieren sieht wie folgt aus:
function password($length = 10) { $pass = ""; $char = array_merge(range("a", "z"), range("A", "Z")); for ($i = 0; $i < $length; $i++) { $rand = array_rand($char); $pass .= $char[$rand]; } return $pass; }
Das zweite Beispiel ist ziemlich ähnlich wie das erste. Zuerst wird ein leerer String namens "pass" erstellt. Danach werden 2 Arrays (a-z, A-Z) zu einem zusammengeführt (array_merge()). In der Schleife wird dann jeweils ein zufälliger Index des neuen grossen Arrays ausgesucht und im nächsten Schritt den Wert von ihm an "pass" angehängt. Verwendet werden unsere Funktionen übrigens folgendermassen:
$pwd = password(); /* In $pwd befindet sich jetzt ein zufälliges Passwort. Die Standardlänge ist, wie oben ersichtlich, 10. Mittels Argument können wir das ganze auch selber bestimmen: */ $pwd = password(12); // Jetzt befindet sich in $pwd ein Passwort mit der Länge 12.
Welches der Funktionen du verwendest ist geschmackssache und somit letztlich dir überlassen. Es empfiehlt sich aber für das Verständniss mindestens einmal beide auszuprobieren.
Kommentar verfassen