04

FEB09

Passwörter mit PHP generieren

Trackback URIVon Peppie in PHP, Programmierung

Auf dem Blog von phptoast.de bin ich eben auf einen netten Beitrag gestoßen bei dem es darum geht ein zufälliges Passwort mittels PHP zu erzeugen. Ich finde den Lösungsweg des Autors von phptoast.de simple aber trotzdem gut, dennoch möchte ich hier in diesem Beitrag meine eigene Variante einmal vorstellen.

Ich habe diese Funktion jetzt bestimmt schon seit gut 2 Jahren und nehme diese auch von Projekt zu Projekt mit. Da man mit meinem Generator zusätzlich noch sagen kann nur Großbuchstaben, nur kleinbuchstaben oder beide Variante gemischt finde ich ein solch generiertes Passwort sehr sicher, natürlich sollte das Passwort dann eine angemessene Länge von mindestens 8 Zeichen besitzen.

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
<?php
function generatePassword( $iLength, $iCase = 0 )
{
  $CaseSelector   = $iCase;
  $ResultPassword = '';
  $Char           = '';

  for( $i=1; $i&lt;=$iLength; $i++ )
  {
    if(!$CaseSelector)
      $iCase = mt_rand( 1, 2 );

    unset($Char);
    $Char[] = chr( mt_rand( 65, 90 ) );
    $Char[] = chr( mt_rand( 48, 57 ) );
    $Char   = $Char[mt_rand( 0, count($Char)-1 )];
    switch( $iCase )
    {
      case 1: { $Char = strtoupper($Char); break; }
      case 2: { $Char = strtolower($Char); break; }
    }
    $ResultPassword .= $Char;
  }
  return $ResultPassword;
}
?>

Parameterliste

  1. $iLength : Integer
    Hiermit wird die Länge des Passwortes definiert
  2. $iCase : Integer [optional]
    Mit dem zweiten Parameter steuern wir Groß-/Kleinschreibung im Passwort.
    1 = nur Großbuchstaben, 2 = nur Kleinbuchstaben, 0 = default = Groß-/ und Kleinschreibung gemischt

 

Edit

Danke an Markus von http://www.sabiro.de/ für den Hinweis der mt_rand() Funktion. Ich habe daher meine Generator der heutigen Zeit mal angepasst :)

Peppie
Über den Autor:
Vor mehr als 7 Jahren habe ich mein Hobby zum Beruf gemacht. Seit her bekommt mich kein Problem so schnell in die Knie, ich bin sehr verbissen und arbeite solange an einem Problem bis es gelöst ist.

Ähnliche Artikel:

2 Kommentare

Markus

Also wenn du mt_rand() nutzen würdest, brauchst du kein srand() mehr ;)

Im Manual steht nämlich unter http://de3.php.net/manual/de/function.mt-srand.php
“Hinweis: Seit PHP 4.2.0 besteht keine Notwendigkeit mehr, den Zufallsgenerator für Zahlen mit srand() oder mt_srand() zu füttern, das geschieht nun automatisch.”

Und ich bin ja der Meinung, dass man mitlerweile sogar schon PHP 5 voraussetzen kann. Ich entwickel auf jeden Fall nicht mehr für PHP 4, seitdem der Support endgültig eingestellt wurde.


Peppie

Danke Markus, hab meinen Beitrag abgeändert ;-)


Kommentar schreiben

;) :( :) :D :P :o :| ^^ :> :< :cry: :S xD


Blogverzeichnis - Blog Verzeichnis bloggerei.de frisch gebloggt Blog Top Liste - by TopBlogs.de Bloggeramt.de Add to Technorati Favorites Dennis bei Xing Wikio - Top Blog UrlFan.com