Obtener un número aleatorio
Es nuestro dado para la terminal:
1
|
head -c 1 /dev/random | od -An -td | sed 's/\s*\(.*\)\s/\1/g'
|
Ya que sólo sacamos un byte, el número más grande será 255, pero podemos sacar números más grandes aumentando el valor. Si pedimos más de 4 bytes, el resultado se dividirá en dos números.
Fuente: Código para llevar
Fuente: Código para llevar
Extraer una cadena de texto aleatoria
1
|
$ echo "$(dd if=/dev/urandom bs=30 count=1 2> /dev/null)"
|
Si te parece demasiado aleatoria, démosle caracteres más normales…
1
|
$ echo "$(dd if=/dev/urandom bs=64 count=1 2> /dev/null)" | tr -dc 'a-zA-Z0-9'
|
También lo podemos hacer con openssl:
1
|
$ openssl rand -base64 32
|
Esta forma puede dar el siguiente error: unable to write ‘random state’, normalmente se debe a que el archivo $HOME/.rnd es propiedad de otro usuario, como puede ser root.