Cómo generar una contraseña aleatoria en Linux
Es posible que haya notado que, a menudo, cuando crea una cuenta en algún sitio web, se le proporciona una contraseña aleatoria o algo que necesita generar una cadena aleatoria en bash. ¿Cómo podemos generar estos datos aleatorios (o contraseñas en nuestro caso) en Linux? Esto se puede hacer de varias formas. Veamos cómo.
Generar métodos de contraseña aleatorios
Linux tiene una forma poderosa de encadenar comandos que usaremos aquí para generar datos aleatorios. El comando de fecha imprime la fecha y la hora del día. Como sabemos que el tiempo sigue cambiando, usamos estos datos cambiantes para crear contraseñas aleatorias. Entonces, en primer lugar, echemos un vistazo a la salida del comando de fecha:
$ date Thu Jun 28 15:56:02 IST 2012
con +% s, muestra el número total de segundos transcurridos desde el 1 de enero de 1970:
$ date +%s 1340879165
Método 1
Ambos comandos se pueden usar como entrada para el comando ‘md5sum’, que crea una suma de comprobación de 128 bits (y sabemos que esta suma de comprobación parece bastante aleatoria).
$ date | md5sum 746b59da100daa4137d91de95c052793 -
Método 2
El símbolo de la tubería, «|» se utiliza para encadenar los comandos, es decir, la salida del comando izquierdo se convierte en la entrada del comando derecho. Y la salida con «fecha +% s»,
$ date +%s | md5sum f751a65f32a1e0cf52c513a7cf23a451 -
Método 3
Aquí, en lugar de usar “md5sum”, “sha256sum” o “sha512sum” también se pueden usar para generar una salida de 256 o 512 bits.
$ date | sha256sum 3a96b9feb1e7d869ed98b101a2e5cc5169e9f8d348712c1fb56196f877e23b8e -
$ date +%s | sha512sum 4f2f1e1863c243fea1dd7082006256211b16d0cb747968cd03ab77abc8f2a01b5c0cac7d9ca078e73d2dadf41959ff9cd2b1b8373dec803ab5967f007b19a5aa -
Como ha visto, estos comandos crean una salida bastante grande, sin embargo, a veces puede ser necesaria una salida de longitud fija (por ejemplo, 8 caracteres). El comando head imprime las primeras líneas (10 por defecto) de un archivo. Pero con la opción -c, se puede usar para mostrar los primeros caracteres.
Método 4
Entonces, en los comandos anteriores, si canalizamos la salida más al comando «head -c 10», generará solo 10 caracteres de salida.
$ date +%s | md5sum | head -c 10 ; echo c398d742c4
$ date | sha256sum | head -c 8 ; echo d3b1b029
Aquí, el comando echo se usa solo para un retorno después de la salida. De lo contrario, la salida se adjuntará a la solicitud.
Hay un archivo / dev / urandom que proporciona una interfaz para el generador de números aleatorios del kernel, lo que significa que se puede utilizar para la generación de números aleatorios. Este archivo puede producir muchos caracteres aleatorios. Antes de ver cómo usar este archivo, veremos una herramienta de procesamiento de texto, «tr». Comando «tr» que se puede utilizar para traducir los caracteres de un rango a otro (por ejemplo, de minúsculas a mayúsculas). No entraremos en muchos detalles de este comando, pero nos limitaremos a lo que se necesita para la generación de números aleatorios. “Echo ‘Hola Mundo’ | tr az AZ ”convertirá todas las letras minúsculas del mensaje en mayúsculas.
$ echo 'Hello World' | tr a-z A-Z HELLO WORLD
«Tr -cd az» truncará (opción -d, eliminará) todo excepto (opción -c, cumplirá) las letras en el rango dado (az aquí):
$ echo 'Hello World' | tr -cd a-z; echo elloorld
Aquí, H y W se eliminan porque no pertenecen al rango az.
Método 5
Ahora volvamos a generar números aleatorios. Si necesita los números aleatorios solo en alfabetos, use «tr -cd [:alpha:] dev / urandom ”. Pero tenga cuidado, llenará la pantalla con alfabetos aleatorios hasta que presione ctrl + c. (El símbolo de redirección de entrada, Aquí, [:alpha:] es un rango de caracteres predefinido para alfabetos. “Tr -cd A-Za-z” también podría usarse para el mismo efecto. Si se requieren todas las letras y números, [:alnum:] (o alternativamente A-Za-z0-9 o [alpha]0-9). Para incluir todos los caracteres, como signos de puntuación, etc., utilice: Esta salida se puede proporcionar además al comando md5sum o sha256sum: Si desea más aleatoriedad en la contraseña, o si desea complicarla un poco más, puede usar un número aleatorio de bits como entrada al comando md5sum (en lugar de 10 fijo). Aquí, $ (
$ tr -cd [:alpha:] < /dev/urandom | head -c 15 ; echo
QdUAwqfKrCBOnVG
Método 6
$ tr -cd [:alnum:] < /dev/urandom | head -c 10 ; echo
TRIJR4YTZC
Método 7
$ tr -cd [:alnum:][:punct:] < /dev/urandom | head -c 20 ; echo
8ejcWS{kk%`p~Zm5JNfC
Método 8
$ tr -cd [:alnum:] < /dev/urandom | head -c 10 | md5sum | head -c 10; echo
805d13817e
Método 9
$ tr -cd [:alnum:] < /dev/urandom | head -c $(tr -cd 0-9 < /dev/urandom | head -c 1) | md5sum | head -c 10; echo
d41d8cd98f
Leer también: