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);
}