LINUX

Cómo generar una contraseña aleatoria en Linux

linux generar contraseña aleatoria

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:]

$ tr -cd [:alpha:] < /dev/urandom | head -c 15 ; echo
QdUAwqfKrCBOnVG

Método 6

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).

$ tr -cd [:alnum:] < /dev/urandom | head -c 10 ; echo
TRIJR4YTZC

Método 7

Para incluir todos los caracteres, como signos de puntuación, etc., utilice:

$ tr -cd [:alnum:][:punct:] < /dev/urandom | head -c 20 ; echo
8ejcWS{kk%`p~Zm5JNfC

Método 8

Esta salida se puede proporcionar además al comando md5sum o sha256sum:

$ tr -cd [:alnum:] < /dev/urandom | head -c 10 | md5sum | head -c 10; echo
805d13817e

Método 9

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).

$ tr -cd [:alnum:] < /dev/urandom | head -c $(tr -cd 0-9 < /dev/urandom | head -c 1) | md5sum | head -c 10; echo
d41d8cd98f

Aquí, $ () sustituye el resultado de por su lugar. Y aquí, hemos generado un número aleatorio usando “tr -cd 0-9

Leer también:

Publicaciones relacionadas

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Botón volver arriba
Cerrar