¿Cómo puedo usar /dev/(u)random
en Ubuntu o cualquier sistema * nix?
Intenté esto pero dice que el permiso fue denegado.
Nota: también lo intenté como root.
/dev/(u)random
sudo /dev/(u)random
sudo -s; /dev/(u)random
¿Cómo puedo usar /dev/(u)random
en Ubuntu o cualquier sistema * nix?
Intenté esto pero dice que el permiso fue denegado.
Nota: también lo intenté como root.
/dev/(u)random
sudo /dev/(u)random
sudo -s; /dev/(u)random
Respuestas:
Es un archivo como dispositivo, por lo que puede hacer cosas como capturarlo o copiarlo. Por ejemplo:
dd if=/dev/urandom of=~/urandom_test count=4 bs=1024
Crea un archivo que contiene 4K de bytes aleatorios.
cat /dev/urandom > ~/urandom_test2
Continuará escribiendo bytes aleatorios en ese archivo hasta que presione Ctrl-C. No haga esto en un sistema de bajo rendimiento ...
head -30 /dev/urandom > ~/urandom_test3
Escribirá 30 líneas de bytes aleatorios
bytes terminated by a \n
. ¿Lo que es tuyo? head -30 /dev/urandom
te dará 30 líneas de bytes aleatorios. La longitud de esas líneas será ciertamente aleatoria. Intente ejecutar wc -l
en su archivo de salida si no está convencido.
/dev/urandom
se limita a 32 MiB por read()
y dd
no volverá a intentar una vez más para leer /dev/urandom
los rendimientos de los 32 MiB, por lo que tiene que llamar dd
a iflag=fullblock
. Ver dd está produciendo un archivo aleatorio de 32 MB en lugar de 1 GB
Si necesita una cierta cantidad de bytes aleatorios, lea esa cantidad de bytes /dev/urandom
.
Es un "archivo especial" que está hecho para ser como un archivo para leer números aleatorios.
Usar cat
para leer /dev/urandom
es una mala idea, porque intentará leer /dev/urandom
hasta el final, pero no termina.
Puedes usar head
. Pero tenga cuidado de leer por byte, no por línea, porque las líneas se separarían aleatoriamente por bytes aleatorios de nueva línea.
Entonces, para leer 30 bytes aleatorios en un archivo random.bytes
, use:
head -c 30 /dev/urandom > random.bytes
Puedes leerlo como un usuario normal.
Normalmente, quieres usar /dev/urandom
, no /dev/random
.
El problema es que /dev/random
es difícil de usar de la manera correcta, y fácil de usar de manera incorrecta. Usarlo mal funciona al principio, pero luego crea problemas de rendimiento extraños, incluso aleatorios. A veces.
Cuando lo usa /dev/urandom
, lo hace /dev/random
internamente, cuidando las partes difíciles.
RANDOM
para crear números enteros positivos aleatorios:echo $RANDOM
y el programashuf
para generar permutaciones aleatorias, por ejemplo, reproducir en orden aleatorio desde una lista de reproducción.