HowTo:Generar números y passwords de forma aleatoria.
En ocasiones para poner contraseñas a aplicativos, lo suyo es que le pongamos un password muy largo y complicado. Se que no es algo extremadamente difícil teclear algo al azar y simplemente ponerlo, pero a modo de curiosidad hay métodos en Linux para ello.
Para ello utilizamos el fichero /dev/random, y esto es una definición explicada perfectamente según la wikipedia:
Linux fue el primer sistema operativo en implementar un generador de números aleatorios a nivel de sistema operativo. La implementación utiliza hashes seguros en lugar decifrados. La implementación también fue diseñada bajo la premisa que cualquier hash o cifrado podría, eventualmente, ser débil por lo que el diseño es robusto frente a cualquiera de esas debilidades.
Permite el acceso a ruido ambiental recogido de dispositivos y otras fuentes. En este fichero se mantienen unos caracteres estimados, que se están generando contínuamente, que es perfecto para situaciones en las que se necesite aleatoriedad de alta calidad, como para la generación de claves.
En sistemas operativos tipo Unix/Linux, /dev/random es un archivo especial que sirve como un generador de números aleatorios, o un generador de números seudo-aleatorios.
También podemos insertar información en este fichero de forma que la contaminemos más para aumentar la seguridad
En este ejemplo usamos /dev/urandom que es similar:
m3t4g4m3@nexolinux ~ $ cat /dev/urandom| tr -dc 'a-zA-Z0-9' | fold -w 25| head -1 bRz3pCwIzsHH6r6QyRFBEC2Bg
Usamos tr para traducir la salida a un formato legible, y fold para que nos muestre los digitos que queramos, pues he probado a poner 40.000 y salen todos… he puesto 25 digitos ya que estoy y al ser un aplicativo quedará más seguro.
La forma de generar números al azar es mucho más sencilla.
$RANDOM es una función interna de Bash que devuelve un número entero entre 0 y 32767
Se pueden poner varios límites, como definir el número inferior y el número superior.
Así tendremos un número entre 0 y 100:
m3t4g4m3@nexolinux ~ $ echo $((RANDOM%100)) 60
En este ejemplo entre 100 y 32767:
m3t4g4m3@nexolinux ~ $ echo $((100+RANDOM)) 16260
En este último ejemplo entre 200 y 500:
m3t4g4m3@nexolinux ~ $ echo $((200+RANDOM%500)) 472
Deja un comentario