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;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;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 1Nous 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 5Mé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; échoMé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 20Ou utilisez Base64 comme:
OpenSSL Rand -base64 21Conclusion
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.