Como gerar string aleatória em bash

Como gerar string aleatória em bash
Uma string aleatória representa uma série de caracteres alfanuméricos que não têm padrão particular. Embora não exista uma corda aleatória absoluta porque sua geração usa lógica matemática, strings aleatórios podem ser únicos.

Neste tutorial, examinaremos várias maneiras de gerar strings aleatórios em bash. Essa funcionalidade pode ser útil ao criar nomes de usuário, senhas ou dados de sementes.

Método 1: Hash MD5

O primeiro método que podemos usar para gerar uma string aleatória no bash é o MD5 Checksums. Bash possui a variável aleatória de $, que produz um número aleatório. Podemos colocar esse valor para md5sum para obter uma string aleatória.

Ilustrar:

eco $ aleatório | md5sum | cabeça -C 20; eco;
996E405CB0CDD2E10299

A variável de $ aleatória é sempre aleatória. Como resultado, a soma de verificação do MD5 é sempre aleatória.

Método 2: UUID

Você também pode usar o gerador de kernel uuid em/proc/sys/kernel/aleatom/uuid. Isso dará a você um valor hexadecimal exclusivo que você pode converter em uma string aleatória usando o comando SED e Head:

Por exemplo:

gato/proc/sys/kernel/aleatória/uuid | sed 's/[-] // g' | cabeça -C 20; eco;
C23174CE6FA149498FC7

Método 3: Dispositivos Pseudo

Você ouviu a frase: “Tudo no Linux é um arquivo.”Um dos conceitos que tornam essa afirmação verdadeira é a capacidade de expressar dispositivos como arquivos.

Os arquivos localizados em /dev são conhecidos como dispositivos pseudo; Eles agem como pontes entre o kernel e o hardware. Um dos arquivos neste diretório é o arquivo uradom.

O arquivo urandom fornece uma interface para acessar o gerador de números aleatórios do kernel. Portanto, podemos usá -lo para gerar uma string aleatória, conforme ilustrado abaixo:

gato /dev /urandom | tr -dc '[: alfa:]' | Dobra -w $ 1: -20 | Cabeça -n 1
QGSWSBBUSUZTUEKXHIHU

Passamos a saída de Urandom para TR, que gera valores alfanuméricos e depois dobra os valores com a largura de até 20 caracteres. Finalmente, temos uma corda forrada com a cabeça -n.

Para obter vários valores de uma só vez, altere o valor da cabeça -n para o número de linhas necessárias.

gato /dev /urandom | tr -dc '[: alfa:]' | Dobra -w $ 1: -20 | Cabeça -n 5
Pozxntvftnqqjzgjfwou
Razpkkdcwivzaxacramu
Bldzwyuiywzpfnmimetl
Cxvfkmaogbezyslqzoro
Yoxtcglzxdnoezomwmfa

Método 4: Base64

Você também pode usar o utilitário base64 para gerar uma string aleatória. Por exemplo, usando a variável Random $, podemos fazer:

eco $ aleatório | base64 | cabeça -C 20; eco
Mtm2odek

Método 5: OpenSSL Pseudo -Random Bytes

O comando openssl rand permite que você gere bytes aleatórios com base no tipo especificado. Esses tipos incluem valores Base63 e Hex.

Por exemplo:

OpenSSL rand -hex 20
1DBA62137447861B2B2EB81E5886FA98D021007B

Ou use base64 como:

OpenSSL rand -Base64 21
i05hhqqeajbzczerx/ftptjh4xyud

Conclusão

Para finalizar, o Bash fornece vários utilitários que você pode usar para gerar strings aleatórios. Portanto, tudo o que você precisa fazer é combinar várias ferramentas e desenvolver uma maneira inteligente de obter cordas aleatórias que atendam às suas necessidades.