Gostaria de saber se alguém teria como me passar algum código para geração automática de login e senha - alfanuméricos(Ao cadastrar um novo usuário, será gerado automaticamente esse login e senha que será enviada via e-mail e também armazenada no meu banco de dados). Entretanto gostaria de saber se alguém poderia disponibilizar somente esse código de geração de login e senha para mim.
a) Todos os caracteres são de A até Z, 0 até 9, e não se confundem (por exemplo, é inaceitável ter uma senha que tenha a letra O e o dígito 0).
b) Seja silábica, mas não bata com palavras da língua portuguesa, nem com palavrões (nem vou dar exemplos aqui)
Por exemplo, “resegrau” não existe no dicionário nem é um palavrão.
c) Seja realmente aleatória (o que foi proposto no PHP)
d) Seja esquema “America OnLine” (duas palavras curtas, unidas por um símbolo. Exemplo: ‘soft%post’
Há muitos jeitos de gerar a tal senha. Existe até um padrão FIPS para isso. Diga o que você gostaria.
Ao clicar em INCLUIR, gostaria de gera uma senha e login alfanuméricos(pode ser, de repente, juntando algumas letras do nome do funcionário):
Login: JSL1AA59
senha: X23R4G
Iria manda por e-mail essa senha e esse login e armazenar também em meu banco de dados ou, poderia também ao invés de pegar o nome do usuário para gerar a senha, posso gerar tudo automaticamente. Qual a melhor solução? Alguma sugestão? Preciso só gerar essa senha e esse login.
É mais seguro não depender do nome do usuário, ou de outra informação, para gerar a senha; deve ser aleatório mesmo.
Para o formato, parece que você quer 6 caracteres/dígitos em maiúscula, certo? Poderia ser algo como
import java.util.Random;
class GeraSenha {
private static Random r = new Random();
// Propositadamente removi os símbolos parecidos, como 1 e I, 0 e O, B e 8, 2 e Z.
// Se quiser adicionar outros símbolos, adicione-os aqui.
private static final char[] simbolos = "2345679ACEFGHJKLMNPQRSTUVWXY".toCharArray();
public String gera (int nDigitos) {
StringBuffer sb = new StringBuffer (nDigitos);
for (int i = 0; i < nDigitos; ++i) {
sb.append (simbolos [r.nextInt (simbolos.length)]);
}
return sb.toString();
}
public static void main(String[] args) {
GeraSenha gs = new GeraSenha();
for (int i = 0; i < 10; ++i) {
System.out.println (gs.gera (6));
}
}
}