Como Gerar Senhas Aleatórias

5 respostas
R

classe Java para gerar senhas aleatórias. Esta classe deverá possuir um método chamado gerarSenha(), com três sobrecargas:

• gerarSenha() sem parâmetros retorna uma senha contendo oito letras minúsculas e/ ou números.
• gerarSenha(int tamanho): retorna uma senha contendo o tamanho passado como parâmetro, alternando letras minúsculas e números aleatórios.
• gerarSenha(int tamanho, boolean maiusculas): retorna uma senha contendo o tamanho passado como parâmetro, alternando letras minúsculas, maiúsculas (se o segundo parâmetro for true) e números, todos aleatórios.

DICA: Use a classe StringBuilder para criar a senha dentro de um laço. Para gerar letras aleatórias, use Random junto de algo semelhante ao trecho de código a seguir, que mostra todas as letras de A a Z, concatenadas:

StringBuilder str = new StringBuilder()
                            for (char c = 65 c <= 90 c++) {
                                 str.append(c)
                            }
                            JOptionPane.showMessageDialog(null, str)

5 Respostas

FearX

Isso é tudo que você fez até agora? Se sim, você duas casas e faça mais antes de pedir ajuda.

R

Quem tiver como ajudar com algumas ideias, agradeço pela atenção.

R

public class Senha {

private static String gerarSenha(){
		int qtdeMaximaCaracteres = 8;
	    String[] caracteres = { "0", "1", "b", "2", "4", "5", "6", "7", "8",
	                "9", "a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k",
	                "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w",
	                "x", "y", "z"};
	    
		StringBuilder senha = new StringBuilder();

        for (int i = 0; i < qtdeMaximaCaracteres; i++) {
            int posicao = (int) (Math.random() * caracteres.length);
            senha.append(caracteres[posicao]);
        }
        return senha.toString();
        
	}
	
	public static void main(String[] args) {
		System.out.println(gerarSenha());

}

}

Fiz assim a primeira sobrecarga gerarSenha()… to sem ideias pra fzr as sobrecargas gerarSenha(int tamanho) e gerarSenha(int tamanho, boolean maiusculas).

R

package Senhas;

public class Senha {

private static String gerarSenha(){
		int qtdeMaximaCaracteres = 8;
	    String[] caracteres = { "0", "1", "b", "2", "4", "5", "6", "7", "8",
	                "9", "a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k",
	                "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w",
	                "x", "y", "z"};
	    
		StringBuilder senha = new StringBuilder();

        for (int i = 0; i < qtdeMaximaCaracteres; i++) {
            int posicao = (int) (Math.random() * caracteres.length);
            senha.append(caracteres[posicao]);
        }
        return senha.toString();
        
	}
	private static String gerarSenha(int qtdeMaximaCaracteres){
		
	    String[] caracteres = { "0", "1", "b", "2", "4", "5", "6", "7", "8",
	                "9", "a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k",
	                "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w",
	                "x", "y", "z"};
	    
		StringBuilder senha = new StringBuilder();

        for (int i = 0; i < qtdeMaximaCaracteres; i++) {
            int posicao = (int) (Math.random() * caracteres.length);
            senha.append(caracteres[posicao]);
        }
        return senha.toString();
	}
	public String gerarSenha(String ContemPalavra, int Repetir){
		// implementar o codigo para gerar a senha e repetir a Palavra especial
		return "Sua senha";
	}
	
	public static void main(String[] args) {
		System.out.println(gerarSenha());
		System.out.println(gerarSenha(10));

}

}

Consegui desenvolver o gerarSenha(int tamanho)… Faltando gerarSenha(int tamanho, boolean maiusculas) quem puder ajudar.

Diego_Bizerra

Gostei muito do seu algoritmo, achei muito interessante. Eu fiz algumas pequenas alterações, eu utilizei a biblioteca swing do JOptionPane e adicionei alguns caracteres.

`private static String gerarSenha(){
	//int qtdeMaximaCaracteres = 8;
	int qtdeMaximaCaracteres = Integer.parseInt(JOptionPane.showInputDialog("Digite o tamanho da sua senha: "));
    String[] caracteres = { "0", "1", "b", "2", "4", "5", "6", "7", "8",
                "9", "a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k",
                "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w",
                "x", "y", "z","+","-","/","*","_","!","@","$","%","&"};
    
	StringBuilder senha = new StringBuilder();

    for (int i = 0; i < qtdeMaximaCaracteres; i++) {
        int posicao = (int) (Math.random() * caracteres.length);
        senha.append(caracteres[posicao]);
    }
    return senha.toString();
    
}
private static String gerarSenha(int qtdeMaximaCaracteres){
	
    String[] caracteres = { "0", "1", "b", "2", "4", "5", "6", "7", "8",
                "9", "a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k",
                "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w",
                "x", "y","z","+","-","/","*","_","!","@","$","%","&"};
    
	StringBuilder senha = new StringBuilder();

    for (int i = 0; i < qtdeMaximaCaracteres; i++) {
        int posicao = (int) (Math.random() * caracteres.length);
        senha.append(caracteres[posicao]);
    }
    return senha.toString();
}
public String gerarSenha(String ContemPalavra, int Repetir){
	// implementar o codigo para gerar a senha e repetir a Palavra especial
	return "Sua senha";
}

public static void main(String[] args) {
	System.out.println("Sua senha: " + gerarSenha());
//		System.out.println("Sua senha toda maiscula: " + gerarSenha().toUpperCase());

JOptionPane.showMessageDialog(null, "Sua senha: " +  gerarSenha());

}`
Criado 8 de novembro de 2018
Ultima resposta 12 de out. de 2020
Respostas 5
Participantes 3