openssl rand 16
não produz saída hexadecimal e openssl rand -hex 16
não produz espaço em branco, e gera 16 bytes (32 dígitos hexadecimais), não 32 bytes (64 dígitos). Mas de qualquer forma, se você quiser remover espaços e novas linhas, você pode usar tr
:
$ cat data
3e1c 37e2 96fc 7029 970c cc87 98fe 40f7
7c70 5a9a 30da 7b72 0064 9a54 ae9c ed91
$ cat data | tr -d '\n '; echo
3e1c37e296fc7029970ccc8798fe40f77c705a9a30da7b7200649a54ae9ced91
Para remover todos os caracteres que não são dígitos hexadecimais, você pode usar tr -dc 0-9A-Fa-f
ou tr -dc '[:xdigit:]'
.
Se você quiser produzir dígitos hexadecimais aleatórios, é possível obtê-los em /dev/urandom
(no Linux, pode ser /dev/random
ou /dev/arandom
em outras variantes unix).
</dev/urandom od -An -tx1 | head -c 32 | tr -d ' \n'