[OpenBSD] Génération de données aléatoires.
#1

Bonjour,

En Bash, j'ai un bout de code qui est capable de générer des données aléatoires, en interrogeant le périphérique /dev/urandom.
Il peut être utilisé pour gérer des noms aléatoires, par exemple.

Voici le code :
Code :
< /dev/urandom tr -cd '[:alnum:]-_' | head -c${256:-${nb_rand}}; echo

La variable 'nb_rand' peut-être une valeur choisie aléatoirement entre 32 et 254, 32 étant la valeur par défaut, ce qui par défaut donne :
Code :
< /dev/urandom tr -cd '[:alnum:]-_' | head -c${256:-32}; echo

Bref, aussi puissant que c'est... sous OpenBSD, cela ne fonctionne pas pour la simple raison que l'option '-c' à l'outil head n'existe pas en ksh ! - (sachant que j'utilise la version ksh93, car plus évoluée que pdksh - shell par défaut sous OpenBSD.)

Qui aurait une idée intéressante pour arriver à récupérer un "segment" de la génération de /dev/urandom ?!

----

Autrement pour générer des données aléatoires, il est possible d'utiliser openssl, telle que :

Code :
openssl rand -base64 ${nb}

Donc, je suis loin d'être dans un impasse...

----

Mais j'aimerais arriver à transformer le bout de code Bash, en une sortie Ksh fonctionnelle et efficace Wink

GPG:Fingerprint ed25519 : 072A 4DA2 8AFD 868D 74CF  9EA2 B85E 9ADA C377 5E8E
GPG:Fingerprint rsa4096 : 4E0D 4AF7 77F5 0FAE A35D  5B62 D0FF 7361 59BF 1733
Répondre
#2

j'aime pas bash... Il est bourré d'exceptions...

Code :
dd if=/dev/urandom count=128 bs=1M 2>&1 | md5 | cut -b-15

Remplace le 15 par la longueur souhaitée.
Répondre
#3

intéressant !

Pourquoi passer par un cheksum ?

C'est quoi ce 'md5' qui se balade-là !

Beurk !

GPG:Fingerprint ed25519 : 072A 4DA2 8AFD 868D 74CF  9EA2 B85E 9ADA C377 5E8E
GPG:Fingerprint rsa4096 : 4E0D 4AF7 77F5 0FAE A35D  5B62 D0FF 7361 59BF 1733
Répondre
#4

C'est uniquement pour avoir des caractères "ecrivables" au clavier si c'est un mot de passe. Tu cire si c'est pour faire autre chose
Répondre
#5

C'est bizarre que quand tu passes par un cat sur /dev/urandom, tu as directement accès à la génération, alors que par le biais de dd, il faille passer par un générateur de somme de contrôle.
Bon, après pour mumuse, j'ai utilisé sha au lieu de md5, mais en effet c'est fonctionnel :p

Merci pour l'astuce.

GPG:Fingerprint ed25519 : 072A 4DA2 8AFD 868D 74CF  9EA2 B85E 9ADA C377 5E8E
GPG:Fingerprint rsa4096 : 4E0D 4AF7 77F5 0FAE A35D  5B62 D0FF 7361 59BF 1733
Répondre
#6

Finalement, je préfère la génération au-travers d'openssl, pour remplacer le script Bash sus-mentionné, en ksh. Wink

GPG:Fingerprint ed25519 : 072A 4DA2 8AFD 868D 74CF  9EA2 B85E 9ADA C377 5E8E
GPG:Fingerprint rsa4096 : 4E0D 4AF7 77F5 0FAE A35D  5B62 D0FF 7361 59BF 1733
Répondre


Atteindre :


Utilisateur(s) parcourant ce sujet : 1 visiteur(s)