Comment générer une chaîne aléatoire en bash

Comment générer une chaîne aléatoire en bash
Une chaîne aléatoire représente une série de caractères alphanumériques qui n'ont pas de modèle particulier. Bien qu'il n'y ait pas de chaîne aléatoire absolue car leur génération utilise la logique mathématique, les chaînes aléatoires peuvent être uniques.

Dans ce tutoriel, nous examinerons diverses façons de générer des chaînes aléatoires en bash. Cette fonctionnalité peut être utile lors de la création de noms d'utilisateur, de mots de passe ou de données de semences.

Méthode 1: hachage MD5

La toute première méthode que nous pouvons utiliser pour générer une chaîne aléatoire en bash est Md5 Checks temps. Bash a la variable aléatoire $, qui produit un nombre aléatoire. Nous pouvons tuer cette valeur à md5sum pour obtenir une chaîne aléatoire.

Pour illustrer:

Echo $ aléatoire | MD5SUM | tête -c 20; écho;
996E405CB0CDD2E10299

La variable aléatoire $ est toujours aléatoire. En conséquence, la somme de contrôle MD5 produit est toujours aléatoire.

Méthode 2: UUID

Vous pouvez également utiliser le générateur UUID du noyau dans / proc / sys / noyau / aléatoire / uuid. Cela vous donnera obtiendra une valeur hexadécimale unique que vous pouvez convertir en une chaîne aléatoire en utilisant la commande SED et Head:

Par exemple:

Cat / Proc / Sys / Kernel / Random / UUID | sed 'S / [-] // g' | tête -c 20; écho;
C23174CE6FA149498FC7

Méthode 3: pseudo appareils

Vous avez entendu la phrase: «Tout dans Linux est un fichier."L'un des concepts qui rendent cette déclaration vraie est la possibilité d'exprimer des appareils en tant que fichiers.

Les fichiers situés dans / dev sont appelés dispositifs pseudo; Ils agissent comme des ponts entre le noyau et le matériel. L'un des fichiers de ce répertoire est le fichier URADOM.

Le fichier urandom fournit une interface pour accéder au générateur de nombres aléatoires du noyau. Par conséquent, nous pouvons l'utiliser pour générer une chaîne aléatoire comme illustré ci-dessous:

Cat / dev / urandom | tr -dc '[: alpha:]' | pli -w $ 1: -20 | Tête -N 1
qgswsbbusuztuekxhihu

Nous tumons la sortie de l'urandom vers TR, qui génère des valeurs alphanumériques, puis plie les valeurs à la largeur de jusqu'à 20 caractères. Enfin, nous obtenons une corde doublée avec la tête -N.

Pour obtenir plusieurs valeurs à la fois, modifiez la valeur de la tête -N en nombre de lignes requises.

Cat / dev / urandom | tr -dc '[: alpha:]' | pli -w $ 1: -20 | tête -N 5
Pozxntvftnqjzgjfwou
RAZPKKDCWIVZAXACRAMU
Bldzwyuiywzpfnmimetl
Cxvfkmaogbezyslqzoro
YxxcglzxdNoEZomwmfa

Méthode 4: Base64

Vous pouvez également utiliser l'utilitaire Base64 pour générer une chaîne aléatoire. Par exemple, en utilisant la variable aléatoire $, nous pouvons faire:

Echo $ aléatoire | base64 | tête -c 20; écho
Mtm2odek

Méthode 5: OpenSSL pseudo octets aléatoires

La commande OpenSSL Rand vous permet de générer des octets aléatoires en fonction du type spécifié. Ces types incluent les valeurs de base63 et hexadécimales.

Par exemple:

OpenSSL Rand -hex 20
1DBA62137447861B2B2EB81E5886FA98D021007B

Ou utilisez Base64 comme:

OpenSSL Rand -base64 21
I05HHQEAJBZCZERX / FTPTJH4XYUD

Conclusion

En clôture, Bash fournit divers services publics que vous pouvez utiliser pour générer des chaînes aléatoires. Par conséquent, tout ce que vous avez à faire est de combiner divers outils et de développer une façon intelligente d'obtenir des chaînes aléatoires qui répondent à vos besoins.