Écrire / dev / random dans un fichier?

10

Si vous exécutiez ce qui suit, que se passerait-il?

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

Serait-il écrit jusqu'à ce que le lecteur manque d'espace, ou le système verrait-il un problème avec cela et l'arrêterait-il (comme avec une boucle de lien symbolique infinie)?

tkbx
la source
4
Je voulais juste ajouter que la concaténation aléatoire dans les appareils valait quelques heures de plaisir dans ma jeunesse. Le framebuffer et la carte son ont entraîné du bruit et le lecteur de disque m'a obligé à faire un reformatage de bas niveau ... de bons moments.
Bob Roberts
OT: 'exécutable / dev / dsp? sonne comme amusant '
sendmoreinfo
@BobRoberts I a des aventures similaires, avec des résultats similaires. J'avais également l'habitude de ssh dans les postes de travail linux de mes collègues et les tonalités DTMF de chat sur le haut-parleur interne, puis de jouer une tonalité occupée, donc il semblait que leur PC essayait de FAX quelque chose. Ah, bons moments.
Tim Kennedy
@TimKennedy comment faites-vous cela? Existe-t-il un / dev / ice pour la prise audio 30 mm?
tkbx
@tkbx bien, je sors avec moi-même, mais à l'époque, vous pouviez envoyer un fichier vers / dev / audio, et s'il s'agissait d'un fichier son (.wav), il serait lu.
Tim Kennedy

Réponses:

22

Il écrit jusqu'à ce que le disque soit plein (il reste généralement de l'espace réservé à l'utilisateur root). Mais comme le pool de données aléatoires est limité, cela pourrait prendre un certain temps.

Si vous avez besoin d'une certaine quantité de données aléatoires, utilisez dd. Pour 1 Mo:

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

D'autres possibilités sont mentionnées dans les réponses à une question connexe .

Cependant, dans presque tous les cas, il est préférable d'utiliser à la /dev/urandomplace. Il ne se bloque pas si le noyau pense qu'il sort de l'entropie. Pour une meilleure compréhension, vous pouvez également lire les mythes sur / dev / urandom .

L'installation accélérée accélère /dev/randomet fournit également plus d'entropie /dev/urandom.

EDIT : ddnécessite l' fullblockoption car / dev / random (à l'opposé de /dev/urandom) peut retourner des blocs incomplets si le pool d'entropie est vide.

Si votre ddne prend pas en charge les unités, écrivez-les:

dd if=/dev/random iflag=fullblock of=$HOME/randomFile bs=1048576 count=1
jofel
la source
7
100 Mo de données aléatoires de haute qualité, c'est un peu trop ... vous devriez obtenir quelques octets pour amorcer un générateur de nombres pseudo aléatoires de haute qualité, comme le twister de Mersenne. Si l'application est critique (au sens cryptographique), vous devez aller vous renseigner sur la question et peut-être embaucher un expert.
vonbrand
4
@vonbrand Non, lire 100 Mo /dev/urandomest très bien, il n'y a aucune raison de ne pas le faire. Et n'utilisez pas de twister Mersenne pour faire de la crypto. Et ne l'utilisez pas /dev/randomsous Linux .
Gilles 'SO- arrête d'être méchant'
3
@jofel: Non, la sortie de /dev/urandom est correcte pour une utilisation cryptographique. Ne pas utiliser /dev/random.
Thomas Pornin
@ Gilles, peut-être que je le perds ... Je suis d'accord avec tout ce que vous dites, et je ne vois pas où j'ai dit quelque chose de différent.
vonbrand
@Gilles & vonbrand: Merci pour vos commentaires, j'ai amélioré ma réponse (maintenant seulement 1 Mo dans l'exemple, / dev / urandom recommandé).
jofel