On 2001.03.01 14:02:41 +0100 Eilert Brinkmann wrote:
Jörg Schütter wrote:
#!/usr/bin/perl
srand time; [...] for ($i = 0; $i < 8; $i++) { print @code[int(rand $len)]; }
Wenn man "wirklich sichere" Paßworte will, ist diese Konstruktion auch mit Vorsicht zu genießen, da die rand-Funktion in Perl (ebenso wie z.B. auch random() in C, $RANDOM in der bash u.v.a.) keine wirklich zufälligen Werte liefert. Vielmehr generieren diese Funktionen Pseudo-Zuffallszahlenfolgen, die ausgehend von einem Ausgangswert Zahlen berechnen, die zwar "zufällig aussehen", tatsächlich aber vorhersehbar sind.
[...]
Einige Hinweise zur Sicherheit gibt's auch in `perldoc -f srand`. Natürlich bedeuten solche Schwächen nicht in jeder Umgebung automatisch eine reale Gefahr. Aber man sollte grundsätzlich an Stellen, wo's um Sicherheit geht, zusehen, daß man möglichst "kryptographisch sichere" Zufallszahlen verwendet. Dafür bietet sich, falls vorhanden, z.B. /dev/random (und für diesen Zweck sollte auch /dev/urandom völlig ausreichen) als Quelle an. Siehe `man 4 random`.
[...] Was macht den den Unterschied zwischen dem Perl-Befehl rand und /dev/random aus? rand nutzt als Startwert eine "zufallszahl, z.B. die Zeit. Woher bekommt aber /dev/random seine Daten? Gruß Jörg -- Dipl.-Ing. Jörg Schütter joerg.schuetter@gmx.de