Générer des chaînes 128 bits hexadécimale aléatoire ou mots de passe

Générer des chaînes 128 bits hexadécimale aléatoire ou mots de passe

Générer des chaînes 128 bits hexadécimales aléatoires pour servir de clef ? Pfff, facile. Et alors, si je veux générer un mot de passe aléatoire?

Chaînes 128 bits aléatoires

1
2
3
4
5
6
7
8
9
$ dd if=/dev/urandom | hexdump -Cv
0028cb40 17 9b d8 db 72 41 56 9a d9 a2 9d 55 e9 5b e3 cf |....rAV....U.[..|
0028cb50 96 a4 48 b8 2d fe cc b4 bd 10 29 3a 74 8d aa 64 |..H.-.....):t..d|
0028cb60 32 b3 35 f8 cd 4c 35 de c9 df 3f b7 44 9e cc 51 |2.5..L5...?.D..Q|
0028cb70 67 86 b5 8a df ef 53 66 86 06 18 41 d9 5f a1 ca |g.....Sf...A._..|
0028cb80 7e 4f 67 71 08 b2 21 47 85 f4 5c 2a d5 3b 8d 3a |~Ogq..!G..\*.;.:|
0028cb90 df b3 7f 29 79 75 75 dc 16 f3 3e b4 c8 78 41 e7 |...)yuu...>..xA.|
0028cba0 54 d6 da 6a e5 8a 90 46 9f dd 7f 61 36 0c 81 bd |T..j...F...a6...|
0028cbb0 a0 9e 6b 98 03 a0 c8 4d 31 27 19 4a be 23 93 05 |..k....M14.J..^C

Et hop : a0 9e 6b 98 03 a0 c8 4d 31 27 19 4a be 23 93 05

Ou bien :

1
2
3
4
5
$ cat /proc/sys/kernel/random/uuid | hexdump -Cv
00000000 37 64 61 30 64 61 64 38 2d 30 64 36 61 2d 34 65 |7da0dad8-0d6a-4e|
00000010 35 39 2d 62 63 62 38 2d 33 64 38 66 39 36 34 33 |59-bcb8-3d8f9643|
00000020 64 63 33 34 0a |dc34.|
00000025

Ce qui donne : 37 64 61 30 64 61 64 38 2d 30 64 36 61 2d 34 65

Ou encore :

1
2
$ date | md5sum
a8649fcf7758f591bbaa3fc4395cef4f

Génération de mots de passe de 32 caractères

10 façons de le faire :

1
2
$ date +%s | sha256sum | base64 | head -c 32 ; echo
NDFlNzk5NDg2NTkyMzc0MTIxYmNmMThj
1
2
$ < /dev/urandom tr -dc _A-Z-a-z-0-9 | head -c${1:-32};echo;
MN-zh0uuuMiUFqyqV-W2s7oqcZM_9bGh
1
2
$ openssl rand -base64 32
DP4o82AfCWEe0D8jhZgw4alvqnplX5H4OcbOvpnYoPU=
1
2
$ tr -cd '[:alnum:]' < /dev/urandom | fold -w30 | head -n1
c44NciLlO5N6iPonYkAD0p6dNGaIjt
1
2
$ strings /dev/urandom | grep -o '[[:alnum:]]' | head -n 30 | tr -d '\n'; echo
3GDZvUXe0VHnPsV6Ul4mu0YZFAGEGG
1
2
$ < /dev/urandom tr -dc _A-Z-a-z-0-9 | head -c32
HftVu-6uwL4VXY9VVo6m6aLMNCU2vsu3
1
2
$ dd if=/dev/urandom bs=1 count=32 2>/dev/null | base64 -w 0 | rev | cut -b 2- | rev
96C3tm9K6C0iioOr7emxnVFaoZRRm/TUuHINIkEF5Pg
1
2
$ </dev/urandom tr -dc '12345!@#$%qwertQWERTasdfgASDFGzxcvbZXCVB' | head -c32; echo ""
Ad@%B5!vzBGq%A$rgWxEBE2dt%1cE2TW

Et la méthode la plus simple :

1
2
$ date | md5sum
593d4efc647d86701a6378730b855640 -

Commentaires