lulu: passwort automatisch generieren lassen

Beitrag lesen

Huhu Frank

Es soll eine kombination aus Buchstaben(groß und klein) und zahlen sein.
z.b. D6Zf425

von Tom und Raik hast Du ja schon Beispiele bekommen.
Bei beiden ist es allerdings nicht zwingend, dass auch wirklich aus allen Zeichengruppen (Zahlen, Grossbuchstaben,Kleinbuchstaben, Sonderzeichen etc.) ausgewählt wird.
Es ist zwar recht unwahrscheinlich, aber es könnte theoretisch auch ein Lexikonwort als Passwort generiert werden.

Deshalb, und weil ja bald Weihnachten ist hier noch ein drittes Beispiel welches in jedem Fall alle vorgegebenen Zeichengruppen berücksichtigt:

<?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_lenght = 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_lenght) {
        $length = $min_lenght;
    }

$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 = rand() % $n;
        $s = $component[$r];
            $stack[] = $s[mt_rand() % strlen($s)];
    }

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

echo generate_password ();

?>

Viele Grüße

lulu

--
bythewaythewebsuxgoofflineandenjoytheday