Frage von Marc747, 41

Random PHP?

Ich weiß, dass ich zufällige Zahlen mit PHP generieren kann, ich brauche aber einen Random Text aus zahlen, Buchstaben, Großbuchstaben (vill. Sonderzeichen) bestehend aus 64 Zeichen der Generiert wird.

Antwort
von TeeTier, 15

Vielleicht so:

<?php

$PASS_CHARS = str_split('0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ');

function passgen($len=16) {
global $PASS_CHARS;

$buf = '';
for ($i = 0; $i < $len; ++$i) {
$buf .= $PASS_CHARS[array_rand($PASS_CHARS)];
}

return $buf;
}

for ($i = 0; $i < 8; ++$i) {
echo 'Pass #' . $i . ': ' . passgen(16) . "\n";
}

Das liefert dann z. B. folgende Ausgabe:

Pass #0: tck3zxwzc57WL3uz
Pass #1: oFelFEybUlBMexsZ
Pass #2: DaxgGLF31KloOz6L
Pass #3: PJm54oqLO8eICSdy
Pass #4: lgfGMjU9ngEwm9bA
Pass #5: HwzUF3qy7t3xl0ss
Pass #6: VIgAcy9oOi3DntL2
Pass #7: fdVuQgvoLNBRUoTi

Allerdings sind globale Variablen äußerst unschön, und du solltest das ganze vielleicht sauber in einer Klasse kapseln!

Naja, viel Spaß damit! :)

PS: Allerhand Schnickschnack wie eine Prüfung auf Mindestlänge und die Verwendung von mt_rand() habe jetzt mal bei Seite gelassen. Darum musst du dich letzendlich natürlich selber kümmern! :)

Beachte dazu bitte UNBEDINGT den ersten Kommentar auf dieser Seite:

http://php.net/manual/de/function.array-rand.php

Antwort
von LeCux, 25


1<?php
2/*
3 * @param integer  $length
4 * @param boolean  $capitals
5 * @param boolean  $specialSigns
6 *
7 * @return string
8 */
9  function CreatePassword($length = 7, $capitals = true, $specialSigns = true)
10  {
11    $array array();
12 
13 
14    if($length < 8)
15      $length = mt_rand(8,20);
16 
17    # Zahlen
18    for($i=48;$i<58;$i++)
19      $array[] = chr($i);
20 
21    # kleine Buchstaben
22    for($i=97;$i<=122;$i++)
23      $array[] = chr($i);
24 
25    # Großbuchstaben
26    if($capitals )
27      for($i=65;$i<=90;$i++)
28        $array[] = chr($i);
29 
30    # Sonderzeichen:
31    if($specialSigns)
32    {
33      for($i=33;$i<47;$i++)
34        $array[] = chr($i);
35      for($i=59;$i<64;$i++)
36        $array[] = chr($i);
37      for($i=91;$i<96;$i++)
38        $array[] = chr($i);
39      for($i=123;$i<126;$i++)
40        $array[] = chr($i);
41    }
42 
43    mt_srand((double)microtime()*1000000);
44    $passwort '';
45 
46    for ($i=1; $i<=$length$i++)
47    {
48      $rnd = mt_rand( 0, count($array)-1 );
49      $passwort .= $array[$rnd];
50    }
51 
52    return $passwort;
53  }
54?>

http://timkunze.eu/passwort-generator-mit-php/

(oder Syscall machen und APG verwenden)

Und ich würde unter Linux /dev/urandom oder /dev/random als Seed benutzen und nicht die Zeit. 

Antwort
von AnonYmus19941, 15

http://pastebin.com/dgMU1Ra5

Antwort
von Yogi851, 15

Das sollte dir eigentlich weiterhelfen ^^:

http://www.askingbox.de/frage/php-zufallsstring-oder-zufallspasswort-erstellen

Keine passende Antwort gefunden?

Fragen Sie die Community

Weitere Fragen mit Antworten