Scrivi / dev / random su file?


10

Se avessi eseguito quanto segue, cosa sarebbe successo?

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

Sarebbe scritto fino a quando il disco non esaurisce lo spazio, o il sistema vedrebbe un problema con questo e lo fermerebbe (come con un ciclo infinito di link simbolici)?


4
Volevo solo aggiungere che la concatenazione casuale nei dispositivi valeva alcune ore di divertimento in gioventù. Il framebuffer e la scheda audio hanno provocato rumore e l'unità disco mi ha richiesto di effettuare una riformattazione di basso livello ... bei tempi.
Bob Roberts,

OT: 'eseguibile / dev / dsp? sembra divertente '
sendmoreinfo,

@BobRoberts Ho avventure simili, con risultati simili. Ho anche usato ssh nelle stazioni di lavoro Linux dei colleghi e i toni DTMF del gatto verso l'altoparlante interno, quindi ho suonato un tono di occupato, quindi sembrava che il loro PC stesse provando a inviare un FAX. Ah, bei tempi.
Tim Kennedy,

@TimKennedy come lo fai? C'è un / dev / ice per il jack audio da 30mm?
tkbx,

@tkbx bene, sto uscendo con me stesso, ma in quel momento potresti catare un file su / dev / audio, e se fosse un file audio (.wav) verrebbe riprodotto.
Tim Kennedy,

Risposte:


22

Scrive fino a quando il disco è pieno (di solito c'è ancora dello spazio riservato per l'utente root). Ma poiché il pool di dati casuali è limitato, ciò potrebbe richiedere del tempo.

Se hai bisogno di una certa quantità di dati casuali, usa dd. Per 1 MB:

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

Altre possibilità sono menzionate nelle risposte a una domanda correlata .

Tuttavia, in quasi tutti i casi è meglio usare /dev/urandominvece. Non si blocca se il kernel pensa di uscire dall'entropia. Per una migliore comprensione, puoi anche leggere i miti su / dev / urandom .

L'installazione accelerata accelera /dev/randome fornisce anche più entropia /dev/urandom.

EDIT : ddrichiede l' fullblockopzione in quanto / dev / random (al contrario di /dev/urandom) può restituire blocchi incompleti se il pool di entropia è vuoto.

Se il tuo ddnon supporta le unità, scrivile:

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

7
100 MiB di dati casuali di alta qualità sono un po 'troppo ... dovresti ottenere qualche byte per seminare un generatore di numeri pseudo casuali di alta qualità, come il tornado di Mersenne. Se l'applicazione è critica (in senso crittografico) devi andare a leggere la questione e magari assumere un esperto.
vonbrand,

4
@vonbrand No, la lettura di 100 MB /dev/urandomva bene, non c'è motivo di non farlo. E non usare un tornado di Mersenne per fare criptovalute. E non usare /dev/randomsu Linux .
Gilles 'SO- smetti di essere malvagio' il

3
@jofel: No, l'output di /dev/urandom va bene per l'uso crittografico. Non usare /dev/random.
Thomas Pornin,

@Gilles, forse lo sto perdendo ... Sono d'accordo con tutto quello che dici, e non riesco a vedere dove ho detto qualcosa di diverso.
vonbrand,

@Gilles & vonbrand: Grazie per i tuoi commenti, ho migliorato la mia risposta (ora solo 1 MB nell'esempio, / dev / urandom consigliato).
jofel,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.