On 2001.03.01 17:45:21 +0100 Eilert Brinkmann wrote:
Jörg Schütter wrote:
Was macht den den Unterschied zwischen dem Perl-Befehl rand und /dev/random aus?
rand in Perl erzeugt Pseudozufallszahlen, d.h., aus einem Ausgangswert wird eine möglichst zufällig aussehende Zahlenfolge nach einer festen Regel deterministisch berechnet. Also liefert z.B. das Kommando
perl -e ' srand 1; for ($i = 0; $i < 20; $i++) { printf "%2d ", rand 100; } print "\n";'
[...]
Dagegen steckt hinter /dev/random ein Gerätetreiber, der versucht, möglichst zufällige und nicht vorhersagbare / reproduzierbare Zahlenfolgen zu produzieren.
rand nutzt als Startwert eine "zufallszahl, z.B. die Zeit.
Oder auch irgendwas anderes, z.B. auch Daten aus /dev/urandom (siehe `perldoc -f srand`).
Woher bekommt aber /dev/random seine Daten?
Der Gerätetreiber dahinter sammelt im Kernel fleißig Daten über alle möglichen Systemaktivitäten, die sich schwer vorhersagen lassen, etwa Zeitabstände zwischen bestimmten Ereignissen u.a. Diese Daten werden kräftig durchgemischt und daraus zufällige Byte-Folgen generiert, die man aus /dev/random lesen kann.
Erinnert mich an die Konfigurationsdatei für OpenSsh auf Unix-Maschinen ohne /dev/random [...] Gruß Jörg -- Dipl.-Ing. Jörg Schütter joerg.schuetter@gmx.de