Este programa em Java, por padrão gera uma senha de 12 caracteres contendo letras do alfabeto latino (caixa alta e caixa baixa) e números. Porém, o número de caracteres pode ser personalizado a seu gosto.
Este programa é disponibilizado em 2 versões:
-
Senha.java
executa todo o código de forma sequencial. Sua compilação geraSenha.class
. -
SenhaSMT.java
executa o código de forma multiprocessada. Sua compilação geraSenhaSMT.class
eSenhaSMT$1.class
Senha e SenhaSMT são programas diferentes e um não depende do outro.
Observações preliminares:
-
Não renomeie os arquivos .java ou .class, a não ser que você saiba editar o código-fonte e compilar para adequar a classe ao nome do arquivo.
-
Configure as suas variáveis de ambiente para o JDK, caso o seu sistema operacional já não faça isso pra você: https://www.formaticabit.com/configurando-variaveis-de-ambiente-no-java/
-
Não há garantias de que o multiprocessamento melhore o desempenho do gerador de senhas, pois o pool de entropia normalmente é mais lento que o CPU.
Como compilar:
-
Instale e configure o OpenJDK ou o Oracle JDK: https://openjdk.java.net/install/
-
Digite
javac Senha.java
para compilar a versão sequencial, oujavac SenhaSMT.java
para compilar a versão multiprocessada.
Como executar:
-
Instale e configure o Java Runtime de sua preferência
-
Digite
java Senha
para executar Senha.class oujava SenhaSMT
para executar SenhaSMT.class.
Para valores personalizados, digite um número inteiro após java Senha. (exemplo: java Senha 20
)
Dica: Algumas versões do OpenJDK permitem executar a partir do código-fonte (java senha.java
), mas recomendo executar o bytecode .class por razões de melhor desempenho.
Problemas conhecidos
- O SenhaSMT não pula linha ao final da execução, pois a partir do momento que uma nova thread é chamada não se tem controle da ordem de execução do código. Recomenda-se opcionalmente a execução do comando
java SenhaSMT && echo ""
, para utilizar o shell para pular a linha manualmente.
Em caso de lentidão/travamento para geração de valores pseudoaleatórios, considere a possibilidade de instalar e configurar o rng-tools, para melhorar velocidade de geração de entropia de qualidade.
https://wiki.archlinux.org/index.php/Rng-tools
Se (e somente se) o seu hardware não possui um RNG confiável, considere instalar e configurar o Haveged.