Passwort erzeugen

Beispiel für Erzeugung eines Passwortes
Beispiel ausführen

Das folgende Skript kann als Passwortgenerator dienen. Die Länge des Passwortes wird beim Funktionsaufruf als Parameter übergeben. Die Bestandteile aus denen das Passwort zusammengesetzt werden soll stehen in der Funktion und müssen ggf. an eigene Anforderungen angepasst werden.

Im Beispiel enthält das erzeugte Passwort mindestens eine Zahl, einen Vokal und einen Konsonaten in Großschreibung, einen Vokal und einen Konsonaten in Kleinschreibung und ein Sonderzeichen (hier nur + oder -).

Werden Passwörter nicht digital übermittelt, z.B. als Fax, dann ist es sinnvoll Zeichen welche falsch interpretiert werden könnten nicht zu verwenden. Da dann der Benutzer das Passwort nicht per Copy & Paste übernehmen kann kommt es z.B. bei oO0 , 1ilj etc. leicht zu Fehleingaben.

<?php
/**
* Ein Passwort erzeugen
* =====================
* Es wird aus jeder im Array $component genannten Zeichenkette mindestens
* ein Zeichen gewählt d.h. die Länge des Passwortes ist mindestens gleich 
* der Anzahl der Array-Elemente von $component.
*
* Wird eine größere Länge vorgegeben wird zunächst zufällig ein Element 
* aus dem Array $component gewählt.
* Aus diesem dann ein zufälliges Zeichen.
* Zum Abschluss werden alle Zeichen gemischt (shuffle) und als String 
* zurückgegeben.
*/


function generate_password($length 8
{
    
$min_length 6;

    
$stack = array();

    
// srand nur für PHP versionen < 4.2 erforderlich
    
srand ( (float) microtime() * 1000000);

    
$component = array(
            
'aeiou',
            
'bdghjlmnpqrstvwxyz',
            
'AEIOU',
            
'BDGHJLMNPQRSTVWXYZ',
            
'123456789',
            
'-+',
             );

    if (
$length $min_length) {
        
$length $min_length;
    }

    
$n count ($component);

    for (
$i 0$i $n$i++) {
        
$s $component[$i];
            
$stack[] = $s [mt_rand() % strlen($s)];
    }

    for (
$i $n$i $length$i++) {
            
$r mt_rand() % $n;
        
$s $component[$r];
            
$stack[] = $s[mt_rand() % strlen($s)];
    }

    
shuffle ($stack);
    
$pwd join(''$stack);
    return 
$pwd;
}

echo 
generate_password ();

?>

Benutzte Funktionen


Hinweise zum DatenschutzImpressum © 2005-2008 S. Eickhoff