Generar paraules de pas fàcilment en una sola línia

A vegades ens tenim la necessitat de generar contrasenyes (paraules de pas o passwords) en un script en bash.

Una forma fàcil és la següent.

PASSWORD=$( cat /dev/urandom | tr -dc 'a-zA-Z0-9' | fold -w 16 | head -n 1 ) ; echo $PASSWORD

Versió amb python

python -c "from random import choice; print ''.join([choice('abcdefghijklmnopqrstuvwxyz0123456789.,=') for i in range(32)])"

Versió amb perl

perl -le 'print map { (a..z,A..Z,0..9,".","-","!")[rand 62] } 0..pop' 32
perl -e 'my @c = (('a'..'z'), ('A'..'Z'), (0..9), ("."), ("."), ("-"),("!")); for(1..32) {print $c[int(rand($#c+1))]}'
perl -E '@vals = split "", "0x1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ-?!@^&*()"; $_ % 2 == 0 ? print $vals[ rand($#vals) ] : print fc $vals[ rand($#vals) ] for 0 .. 24; say;'
perl -e 'use Crypt::GeneratePassword qw(chars); print chars(32,32);'