Programação e Linux.

domingo, 4 de março de 2012

Gerar senhas aleatórias

Basicamente, existem duas ferramentas para gerar senhas aleatórias no Linux: mkpasswd e makepasswd

O mkpasswd não foi feito para isso (man mkpasswd para saber seu propósito), mas ele pode ser usado para esse fim sem prover flexibilidade:
mkpasswd $RANDOM
O makepasswd foi feito para isso, é bastante simples, possuí grande flexibilidade (man makepasswd) mas não vem por padrão nas distribuições, o que inviabiliza quem não tem acesso a instalá-lo (pode-se instalar ele localmente, mas isso é outra história):
makepasswd
Outra solução? fazer um alias (ou uma função, ou script se preferir) no bash:
alias randpass='cat /dev/urandom|tr -dc "a-zA-Z0-9-_=+\$\.\?\[\]" | fold -w 16 |head -n 10'
Explicando o conjunto acima: ele cria 10 senhas (-n 10) de 16 caracteres (-w 16) usando os caracteres (escapados) "a-zA-Z0-9-_=+\$\.\?\[\]" como base. Modifique a seu gosto e adicione-o em seu ~/.bashrc e chame-o com:
randpass