Giter Club home page Giter Club logo

gerador-de-senhas's Introduction

Gerador-de-Senhas

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:

  1. Senha.java executa todo o código de forma sequencial. Sua compilação gera Senha.class.

  2. SenhaSMT.java executa o código de forma multiprocessada. Sua compilação gera SenhaSMT.class e SenhaSMT$1.class

Senha e SenhaSMT são programas diferentes e um não depende do outro.

Observações preliminares:

  1. 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.

  2. 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/

  3. 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:

  1. Instale e configure o OpenJDK ou o Oracle JDK: https://openjdk.java.net/install/

  2. Digite javac Senha.java para compilar a versão sequencial, ou javac SenhaSMT.java para compilar a versão multiprocessada.

Como executar:

  1. Instale e configure o Java Runtime de sua preferência

  2. Digite java Senha para executar Senha.class ou java SenhaSMTpara 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

  1. 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.

Dicas para usuários de Linux:

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.

https://wiki.archlinux.org/index.php/Haveged

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.