Gerar senha aleatória com caracteres especiais no Solaris

1

Estou tentando gerar uma senha aleatória de 10 caracteres nos servidores Solaris. Os exemplos fornecidos pela Web são para Linux e, na maioria das vezes, não funcionam no Solaris.

    
por judi 08.05.2018 / 13:34

2 respostas

3

Você pode obter bytes aleatórios de qualidade criptográfica de /dev/urandom . (Isso existe desde o Solaris 9. Ele também existe no Linux.) Isso inclui caracteres não imprimíveis, portanto, é necessário removê-los. O comando a seguir extrai 10 caracteres ASCII não espaciais imprimíveis aleatoriamente.

</dev/urandom tr -dc '!-~' | dd ibs=1 obs=1 count=10

Eu não recomendo usar caracteres especiais em senhas. Eles não tornam as senhas mais seguras. O que torna a segurança de uma senha é sua entropia. Uma senha de 10 caracteres tem 10 × log 2 (94) ≈ 65,5 bits de entropia. Você pode obter a mesma quantidade de entropia de 9 bytes arbitrários e codificá-los como desejar, por exemplo, como hexadecimal.

</dev/urandom dd ibs=1 obs=1 count=9 | od -tx1 -An | tr -d ' '

Ou como Base64, que é menor.

</dev/urandom dd ibs=1 obs=1 count=9 | uuencode -m - | sed -n 2p

Se houver alguma restrição que “senhas devem conter pelo menos um caractere especial” (que é uma maneira questionável de tornar as senhas selecionadas por humanos médios mais seguras, e completamente errado para senhas geradas aleatoriamente) ), então você não pode simplesmente usar uma senha aleatória, porque há uma chance de que isso não contenha nenhum caractere em uma classe requerida. Se você rejeitar senhas que não atendem à restrição, você está reduzindo a segurança da senha. Em vez disso, torne a senha mais longa, por exemplo,

</dev/urandom dd ibs=1 obs=1 count=9 | uuencode -m - | sed '2!d; s/$/-Aa1/'

Se você precisar que a senha seja memorável, esse é um problema diferente. As melhores senhas memoráveis são as senhas .

    
por 08.05.2018 / 14:47
-1

Você tem perl no Solaris, ajuda:

perl -e 'print[0..9,a..z,A..Z]->[rand 62]for 1..10'

Com caracteres especiais, será:

perl -e 'print [0..9,a..z,A..Z,qw{- _ / & ?}]->[rand 67]for 0..10'
    
por 08.05.2018 / 13:44