Gerador de senha

rapaziada, eu quero criar um gerador de senhas em java mas não sei por onde começar mas da seguinte forma.
ex:1005F6B1 (senha que aparece no aparelho, eu coloco ela no gerador e ele me retorna outra senha para ser digitada desbloqueando com esta senha gerada).
ex:5C2EEFB2 (senha retornada para estar desbloqueando)

1 curtida

Vou passar a solução pq na época que eu queria achar isso, custou um tempo, mas no final gostei do resultado:

Cria esse método:

    public static char[] OTP(int len) {
        System.out.print("A senha do usuário é: ");
        String numbers = "0123456789";

        Random rndm_method = new Random();
        char[] otp = new char[len];

        for (int i = 0; i < len; i++) {
            otp[i] = numbers.charAt(rndm_method.nextInt(numbers.length()));
        }
        return otp;
    }

Aí pra gerar a senha vc faz:

public void gerarSenha() {
        int length = 6;
        codigoEnviado = String.copyValueOf(OTP(length));
        //faz seu metodo pra enviar pro cara
        metodo(codigoEnviado);
    }

Depois valida:

public void validar() {
        String codigo = String.valueOf(codigoEnviado);
        if (codigo.equals(campoparadigitar.getText())) {
            //Faz alguma coisa
        } else {
            JOptionPane.showMessageDialog(null, "Código inválido! Tente Novamente");
        }
    }

Aqui ele faz o Random só de números, mas vc pode botar letra no meio tbm

Nesse padrão?

public static String gerarSenha(int len){
  Random rand = new Random();
  char[] pass = new char[len];
  for(int i = 0; i < pass.length; i++){
    pass[i] = (char) (rand.nextBoolean()? (int) '0'+ rand.nexInt(10) : (int) 'A' + rand.nextInt(26));
  }
  Return new String(pass);
}