Schreiben / dev / random in Datei?

10

Was würde passieren, wenn Sie Folgendes ausführen würden?

cat /dev/random > ~/randomFile # don't run

Würde es geschrieben werden, bis das Laufwerk keinen Speicherplatz mehr hat, oder würde das System ein Problem damit sehen und es stoppen (wie bei einer Endlos-Symlink-Schleife)?

tkbx
quelle
4
Ich wollte nur hinzufügen, dass das Verketten von Zufällen in Geräte in meiner Jugend ein paar Stunden Spaß wert war. Der Framebuffer und die Soundkarte führten zu Rauschen und das Laufwerk erforderte eine Neuformatierung auf niedriger Ebene ... gute Zeiten.
Bob Roberts
OT: 'ausführbare Datei / dev / dsp? klingt nach Spaß '
sendmoreinfo
@ BobRoberts Ich habe ähnliche Abenteuer mit ähnlichen Ergebnissen. Ich habe auch in die Linux-Workstations meiner Kollegen geschaltet und DTMF-Töne an den internen Lautsprecher gesendet und dann einen Besetztton abgespielt, sodass es sich anhörte, als würde ihr PC versuchen, etwas zu faxen. Ah, gute Zeiten.
Tim Kennedy
@ TimKennedy wie machst du das? Gibt es ein / dev / ice für die 30mm Audio-Buchse?
Tkbx
@tkbx Nun, ich bin mit mir selbst zusammen, aber früher konnte man eine Datei in / dev / audio katzen, und wenn es eine Sounddatei (.wav) wäre, würde sie abgespielt.
Tim Kennedy

Antworten:

22

Es wird geschrieben, bis die Festplatte voll ist (normalerweise ist noch etwas Speicherplatz für den Root-Benutzer reserviert). Da der Pool zufälliger Daten jedoch begrenzt ist, kann dies eine Weile dauern.

Wenn Sie eine bestimmte Menge zufälliger Daten benötigen, verwenden Sie dd. Für 1 MB:

dd if=/dev/random iflag=fullblock of=$HOME/randomFile bs=1M count=1

Andere Möglichkeiten werden in Antworten auf eine verwandte Frage erwähnt .

In fast allen Fällen ist es jedoch besser, /dev/urandomstattdessen zu verwenden . Es blockiert nicht, wenn der Kernel denkt, dass er aus der Entropie herauskommt. Zum besseren Verständnis können Sie auch Mythen über / dev / urandom lesen .

Die Installation von hasged beschleunigt /dev/randomund bietet außerdem mehr Entropie /dev/urandom.

BEARBEITEN : ddbenötigt die fullblockOption, da / dev / random (im Gegensatz zu /dev/urandom) unvollständige Blöcke zurückgeben kann, wenn der Entropiepool leer ist.

Wenn Sie ddkeine Einheiten unterstützen, schreiben Sie diese auf:

dd if=/dev/random iflag=fullblock of=$HOME/randomFile bs=1048576 count=1
Jofel
quelle
7
100 MiB hochwertige Zufallsdaten sind ein bisschen viel ... Sie sollten ein paar Bytes benötigen, um einen hochwertigen Pseudozufallszahlengenerator wie den Mersenne-Twister zu erstellen. Wenn die Anwendung kritisch ist (im kryptografischen Sinne), müssen Sie sich über die Angelegenheit informieren und möglicherweise einen Experten einstellen.
vonbrand
4
@vonbrand Nein, das Lesen von 100 MB /dev/urandomist in Ordnung, es gibt keinen Grund, dies nicht zu tun. Verwenden Sie für Krypto keinen Mersenne-Twister. Und nicht /dev/randomunter Linux verwenden .
Gilles 'SO - hör auf böse zu sein'
3
@jofel: Nein, die Ausgabe von /dev/urandom ist für die kryptografische Verwendung in Ordnung. Nicht verwenden /dev/random.
Thomas Pornin
@ Gilles, vielleicht verliere ich es ... Ich stimme mit allem überein, was du sagst, und kann nicht sehen, wo ich etwas anderes gesagt habe.
vonbrand
@ Gilles & vonbrand: Danke für deine Kommentare, ich habe meine Antwort verbessert (jetzt nur 1 MB im Beispiel, / dev / urandom empfohlen).
Jofel