Minha maneira favorita de fazer isso é usar /dev/urandom
junto com tr
para excluir caracteres indesejados. Por exemplo, para obter apenas dígitos e letras:
head /dev/urandom | tr -dc A-Za-z0-9 | head -c 13 ; echo ''
Como alternativa, para incluir mais caracteres do < a href="https://www.owasp.org/index.php/Password_special_characters"> lista de caracteres especiais da senha OWASP :
</dev/urandom tr -dc 'A-Za-z0-9!"#$%&'\''()*+,-./:;<=>?@[\]^_'{|}~' | head -c 13 ; echo
Se você tiver alguns problemas com tr
reclamando sobre a entrada, tente adicionar LC_ALL=C
assim:
LC_ALL=C tr -dc 'A-Za-z0-9!"#$%&'\''()*+,-./:;<=>?@[\]^_'{|}~' </dev/urandom | head -c 13 ; echo