Wie verwende ich / dev / (u) random?

32

Wie kann ich /dev/(u)randomauf Ubuntu oder anderen * nix-Systemen arbeiten?

Ich habe es versucht, aber es heißt, die Erlaubnis wurde verweigert.
Hinweis: Ich habe es auch als root versucht.

/dev/(u)random
sudo /dev/(u)random
sudo -s; /dev/(u)random
Caner Korkmaz
quelle
2
Bitte beachten Sie, dass diese Befehle nur verwendet werden sollten, wenn Sie wirklich qualitativ hochwertige Zufallsdaten benötigen, um normalerweise gute Passwörter zu erstellen. Ansonsten gibt es leichtere Alternativen, zum Beispiel die Shell-Umgebungsvariable, RANDOMum zufällige positive ganze Zahlen zu erzeugen echo $RANDOM, und das Programm shuf, um zufällige Permutationen zu erzeugen, zum Beispiel, um in zufälliger Reihenfolge aus einer Wiedergabeliste zu spielen.
Sudodus

Antworten:

54

Es ist eine Datei wie ein Gerät, so dass Sie Dinge wie cat it tun oder daraus kopieren können. Zum Beispiel:

dd if=/dev/urandom of=~/urandom_test count=4 bs=1024

Erstellt eine Datei mit 4 KB zufälligen Bytes.

cat /dev/urandom > ~/urandom_test2 

Schreibt weiterhin zufällige Bytes in diese Datei, bis Sie Strg-C drücken. Tun Sie dies nicht auf einem System mit geringer Leistung ...

head -30 /dev/urandom > ~/urandom_test3

Schreibt 30 Zeilen mit zufälligen Bytes

Aychedee
quelle
1
Dann zögern Sie nicht und stimmen Sie ab!
Aychedee
5
Ich würde, wenn mein Vertreter> 15
Caner Korkmaz
1
Hinweis: Führen Sie cat / dev / urandom> ~ / urandom_test2 nicht auf leistungsschwachen Systemen aus -> das friert das System ein
Caner Korkmaz
1
Nun, das hängt wirklich von Ihrer Definition einer Linie ab. Meine Definition ist bytes terminated by a \n. Welches ist deines? head -30 /dev/urandomSie erhalten 30 Zeilen mit zufälligen Bytes. Die Länge dieser Zeilen wird sicherlich zufällig sein. Versuchen Sie es mit wc -lIhrer Ausgabedatei, wenn Sie nicht überzeugt sind.
Aychedee
3
Beachten Sie, dass /dev/urandomauf 32 MiB begrenzt ist pro read()und ddwird nicht versuchen noch einmal zu lesen /dev/urandomAusbeuten jene 32 MiB, so müssen Sie rufen ddmit iflag=fullblock. Siehe dd produziert eine 32 MB Zufallsdatei anstelle von 1 GB
Sergiy Kolodyazhnyy
14

Holen Sie sich zufällige Bytes

Wenn Sie eine bestimmte Anzahl von Zufallsbytes benötigen, lesen Sie diese Anzahl von Bytes ab /dev/urandom.
Es ist eine "spezielle Datei", die wie eine Datei gemacht ist, aus der Zufallszahlen gelesen werden können.

Das catLesen /dev/urandomist eine schlechte Idee, da es versucht, /dev/urandombis zum Ende zu lesen - aber es endet nicht.

Sie können verwenden head. Aber achten Sie darauf, dass Sie byteweise und nicht zeilenweise lesen, da die Zeilen durch zufällige Zeilenumbruch-Bytes zufällig voneinander getrennt werden.

Um also 30 zufällige Bytes in eine Datei zu lesen random.bytes, verwenden Sie:

head -c 30 /dev/urandom > random.bytes

Sie können als normaler Benutzer daraus lesen.

Lass in Ruhe / dev / random

Normalerweise möchten Sie verwenden /dev/urandom, nicht /dev/random.

Das Problem ist, dass /dev/randomes schwierig ist, es richtig zu verwenden - und es ist einfach, es falsch zu verwenden. Die falsche Verwendung funktioniert zunächst, führt aber später zu merkwürdigen - sogar zufälligen - Leistungsproblemen. Manchmal.

Wenn Sie es verwenden /dev/urandom, wird es /dev/randomintern verwendet und kümmert sich um die kniffligen Teile.

Volker Siegel
quelle
4

Wenn Sie es nur mit erkannten Zahlen lesen möchten, können Sie dies tun

od -d /dev/random
Seraf
quelle
0

Ich persönlich benutze dies, um Token zu generieren:

dd if=/dev/urandom  count=1 bs=128 | sha512sum
Farsheed
quelle