Como Gerar Senhas Aleatórias

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)

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

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

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

1 curtida

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.

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

1 curtida