Cómo generar una cadena aleatoria en Bash

Cómo generar una cadena aleatoria en Bash
Una cadena aleatoria representa una serie de caracteres alfanuméricos que no tienen un patrón particular. Aunque no hay una cadena aleatoria absoluta porque su generación usa lógica matemática, las cadenas aleatorias pueden ser únicas.

En este tutorial, veremos varias formas en que podemos generar cuerdas aleatorias en Bash. Esta funcionalidad puede ser útil al crear nombres de usuario, contraseñas o datos de semillas.

Método 1: hash MD5

El primer método que podemos usar para generar una cadena aleatoria en Bash es MD5 SUMS. Bash tiene la variable $ aleatoria, que produce un número aleatorio. Podemos llevar este valor a MD5SUM para obtener una cadena aleatoria.

Para ilustrar:

Echo $ Random | MD5SUM | cabeza -c 20; eco;
996E405CB0CDD2E10299

La variable $ aleatoria siempre es aleatoria. Como resultado, la suma de verificación MD5 produce siempre al azar.

Método 2: UUID

También puede usar el generador de uuid del kernel en/proc/sys/kernel/random/uuid. Esto le dará un valor hexadecimal único que puede convertir a una cadena aleatoria usando el comando SED y la cabeza:

Por ejemplo:

Cat/Proc/Sys/Kernel/Random/Uuid | sed 's/[-] // g' | cabeza -c 20; eco;
C23174CE6FA149498FC7

Método 3: Pseudo dispositivos

Has escuchado la frase: “Todo en Linux es un archivo."Uno de los conceptos que hacen que esta declaración sea verdadera es la capacidad de expresar dispositivos como archivos.

Los archivos ubicados en /dev se conocen como dispositivos pseudo; actúan como puentes entre el núcleo y el hardware. Uno de los archivos en este directorio es el archivo uradom.

El archivo urandom proporciona una interfaz para acceder al generador de números aleatorios del kernel. Por lo tanto, podemos usarla para generar una cadena aleatoria como se ilustra a continuación:

Cat /dev /urandom | tr -dc '[: alfa:]' | pliegue -w $ 1: -20 | cabeza -n 1
qgswsbbusuztuekxhihu

Encontramos la salida de Urandom a TR, que genera valores alfanuméricos y luego dobla los valores al ancho de hasta 20 caracteres. Finalmente, obtenemos una cadena forrada con cabeza -n.

Para obtener múltiples valores a la vez, cambie el valor de Head -N a la cantidad de líneas requeridas.

Cat /dev /urandom | tr -dc '[: alfa:]' | pliegue -w $ 1: -20 | cabeza -n 5
Pozxntvftnqqjzgjfwou
Razpkkdcwivzaxacramu
Bldzwyuiywzpfnmimetl
Cxvfkmaogbezyslqzoro
Yoxtcglzxdnoezomwmfa

Método 4: Base64

También puede usar la utilidad base64 para generar una cadena aleatoria. Por ejemplo, usando la variable $ aleatoria, podemos hacer:

Echo $ Random | base64 | cabeza -c 20; eco
Mtm2odek

Método 5: OpenSSL Pseudo Random Bytes

El comando OpenSSL RAND le permite generar bytes aleatorios basados ​​en el tipo especificado. Estos tipos incluyen valores base63 y hexadecimales.

Por ejemplo:

openssl rand -hex 20
1DBA62137447861B2B2EB81E5886FA98D021007B

O use base64 como:

Openssl Rand -Base64 21
i05HHQeaajbzczerx/ftptjh4xyud

Conclusión

Para terminar, Bash proporciona varias utilidades que puede usar para generar cadenas aleatorias. Por lo tanto, todo lo que necesita hacer es combinar varias herramientas y desarrollar una forma inteligente de obtener cadenas aleatorias que se adapten a sus necesidades.