PHP Maniac

Das PHP Blog für PHP-Profis und alle die es werden wollen

Zufällige Passwörter automatisch mit PHP generieren

30 Juni, 2009 (14:36) | Code-Schnipsel, Grundlagen, Tipps und Tricks | Von: PHP Maniac

Heute möchte ich euch gerne einen kleinen Codeschnipsel vorstellen, der automatisch Passwörter generieren kann. Er enthält zwar keine großen Innovationen aber ich verwende ihn bereits seit vielen Jahren in meinen Projekten und somit ist er sicherlich auch für den einen oder anderen von euch interessant.

Das Generieren von Passwörtern ist vor allem dort notwendig, wo sich z.B. neue Benutzer registrieren können und zunächst ein beliebiges Passwort gesetzt werden soll. Beliebig ist hierbei allerdings relativ, denn natürlich sollte das Passwort jedesmal unterschiedlich sein und gewissen Anforderungen an die Passwortlänge und die erlauben Zeichen genügen. Schließlich wollen wir unsere Benutzer nicht mit Passwörtern aus lauter Sonderzeichen vergraulen.

Hier nun vorab einmal das Skript, ich werde im Anschluss kurz auf die Besonderheiten eingehen:

function generatePassword($pwlen=5)
{
	mt_srand();
	$salt = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
	
	for($i=0;$i<$pwlen;$i++)
	{
		$pw .= $salt[mt_rand(0, strlen($salt)-1)];
	}

	return $pw;
}

Die obige Funktion generiert euch also zufällige Passwörter. Die Passwortlänge kann hierbei als Parameter übergeben werden, standardmäßig werden Passwörter mit fünf Zeichen erstellt. Die für die Passwörter zulässigen Zeichen können einfach in die Variable $salt mit eingetragen werden. Das Skript initialisiert zunächst den Zufallsgenerator, allerdings wäre es besser dies ganz zu Anfang der index.php zu erledigen und die Initialisierung aus der Funktion selbst zu entfernen. Da dann dieses Beispiel aber nicht so ohne Weiteres überall funktionieren würde, habe ich mich für diesen (nicht ganz optimalen) Weg entschieden.

Nach der Initialisierung wird die for-Schleife so oft durchlaufen, bis die gewünschte Passwortlänge erreicht wurde. Bei jedem Durchlauf wird hierbei ein zufälliges Zeichen aus der $salt Variable ausgewählt und an den $pw String angehängt, der später das generierte Passwort enthält, das zurückgegeben wird. Der Trick ist hierbei, dass die $salt Variable als Array aufgefasst werden kann um das gewünschte Zeichen zu extrahieren.

Viel Spaß beim Verwenden und Erweitern!

Be Sociable, Share!

Kommentare

Pingback von Mailen mit PHP – Über das automatisierte Versenden von Emails – PHP Maniac – Das PHP Blog
Datum 2. Juli 2009 um 15:56 Uhr

[…] sich mein letzter Artikel mit dem automatischen Generieren von Passwörtern beschäftigt hat und ich als Beispiel die Benutzerregistrierung erwählte, möchte ich euch heute […]

Schreibe einen Kommentar