Eintrag-Details: Passwörter mit PHP automatisch erzeugen

04.02.2006

Passwörter mit PHP automatisch erzeugen

Wer ein Portal oder eine Community betreibt, bei der sich Besucher neu anmelden können, braucht manchmal eine Möglichkeit, dem Benutzer ein Passwort vorzugeben. Selbst Portale, bei denen man sein Passwort selbst wählen kann, brauchen diese Funktion, falls der Kunde sein Passwort einmal vergessen hat. In diesem Fall wird dem Kunden meist ein temporäres Passwort zugeschickt, das er dann wieder ändern kann.

[Mehr:]

Die Notwendigkeit, ein temporäres Passwort zu erzeugen, ergibt sich aus der gängigen Praxis, dass die Kunden-Passwörter niemals im Klartext gespeichert werden sollten. Daher kann ein Portal-Betreiber über den Link "Passwort vergessen" eigentlich nie das Original-Passwort an den Kunden versenden. Das Generieren eines neuen Passwortes ist jedoch möglich.

Damit ein neu generiertes Passwort nicht allzu leicht zu erraten ist, sollte es aus Groß- und Kleinbuchstaben, Ziffern und Sonderzeichen bestehen. Diese kleine PHP-Funktion erzeugt ein solches Passwort mit 8 Zeichen und gibt es als Ergebnis zurück:

function makepwd()
{
   mt_srand ((double) microtime() * 1000000);
   $passwd = "";
   $chars = "0123456789ABCDEFGHabcdefghijklmnopqrstuvwxyz";
   for ($k = 0; $k < 8; $k += 1)
   {
     $num = mt_rand(0, strlen($chars)-1);
     $passwd .= $chars[$num];
   }
   return $passwd;
}

Code herunterladen

Die Funktion legt zunächst einen Startwert für die Zufallszahlen-Funktion fest. Das ist notwendig, weil sonst bei jedem Aufruf das gleiche Passwort über die Zufallsfunktion erscheinen würde. Diese Initialisierung erfolgt über die PHP-Funktion mt_srand() die mit Hilfe der aktuellen Systemzeit gesetzt wird.

Wenn Sie PHP ab Version 4.2 verwenden, können Sie diese Zeile auch weglassen. Ab dieser Version wird das Setzen eines Startwertes für die Zufallsfunktion automatisch übernommen.

Die Variable $passwd, in die das Passwort gespeichert werden soll, wird zunächst mit einer leeren Zeichenkette initialisiert.

Eine weitere Zeichenkette $chars enthält alle Zeichen, die später in dem Passwort vorkommen können. Hier können (und sollen) natürlich auch Sonderzeichen enthalten sein.

Die eigentliche Generierung des Passwortes passiert in einer For-Schleife, die achtmal durchlaufen wird. Zunächst wird über die Funktion mt_rand() eine Zufallszahl ermittelt, die von Null bis zur Länge-1 gehen kann.

Eine Besonderheit bei PHP ist, dass man eine Zeichenkette wie ein Array auslesen kann. Auf diese Weise kann mit $char[0] das erste Zeichen aus der Variable $chars ermittelt werden. Wenn nun dieser Index eine Zufallszahl ist, so entsteht innerhalb der achtmal durchlaufenen Schleife ein zufälliges Passwort aus acht Ziffern und Zeichen.

Das fertige Passwort wird dann mit "return" an das aufrufende Skript zurück geliefert.

Hinweis: Diesen Text und die enthaltenen Beispielprogramme und Skripte dürfen Sie zum Erlernen der einzelnen Techniken und auch als Grundlage für Ihre eigenen Projekte auf eigene Gefahr kostenlos nutzen.

Bitte denken Sie daran, dass alle Texte und Quellcodes trotzdem urheberrechtlich geschützt sind. Eine direkte Weitergabe ist nur nach ausdrücklicher schriftlicher Genehmigung gestattet.

Permalink 04.02.2006 09:15:57, von Marian eMail , 449 Wörter, 8146 mal angeschaut   German (DE) Kategorien: PHP

Kommentare, Pingbacks:

Kommentar von: mausfunktion [Besucher] · http://mausfunktion.de
ich find die seite gut...endlich mal jemand der was erklärt und nicht nur den fertigen code asugibt...thx!!!
Permalink 04.06.2006 @ 12:08
Kommentar von: Martin [Besucher]
sieht gut aus das script. bekomme aber kein passwort raus. wie muss ich das script (passwort) korrekt aufrufen?
danke!

gruss, martin
Permalink 01.02.2007 @ 15:09
Kommentar von: Stefan [Besucher] · http://www.8bo.de
@Martin:
Beispielsweise so: $passwd = makepwd();
Permalink 18.10.2007 @ 16:17

Werbung

Online-Kurse

  • Bequem PHP lernen bei freier Zeiteinteilung von zuhause
  • Der Onlinekurs den jeder versteht
  • www.lernpilot.de/wbt/

Konnte ich helfen?

mehr Werbung

viagra online|1|2|3|4|5|6|7|8|9|10|11|12|13|14|15|16|17|18|19|20|21|22|23|24|25|26|27|28|29|30|31|32|33|34|35|36|37|38|39|40|41|42|43|44|45|46|47|48|49|50|51|52|53|54|55|56|57|58|59|60|61|62|63|64|65|66| levitra overdose effects levitra overdose symptoms which is stronger levitra or viagra cialis levitra or viagra levitra or viagra which is better levitra interactions alcohol levitra uk side effects levitra uk online generic levitra uk levitra use for women levitra use instructions levitra user group levitra tabs 20mg levitra trial coupon levitra time effectiveness levitra time frame levitra ratings and reviews levitra effects viagra levitra effects use levitra effects forum levitra effects liver levitra effects women levitra effectiveness reviews levitra women effect standard levitra dose levitra generic medication levitra generic viagra levitra generic cheap levitra generic drug levitra generic available