Segurança Logica - Login/Senha em Java

7 respostas
Luffy

Pessoal, estou passando por umas dificuldades para desenvolver umas restrições na parte de login e senha em java.
O basico para o login/senha ja foi feito, agora nao sei como fazer essas partes:

  • Tamanho minimo de 8 caracteres
  • Nao pode ser zero ou nulo
  • Nao pode comecar com os 3 primeiros digitos do login do usuario
  • Tem que ter no minimo 2 letras e 2 numeros na senha
  • Expirar a senha dentro de 45 dias

Se for possivel me ajudem nem q seja em um dos topicos acima

obrigado,

Luffy

=]

7 Respostas

E

Dica: escreva uma rotina que valide as 4 primeiras restrições (a quinta você precisa anotar a data de expiração no seu banco de dados).
Para escrever a rotina, sente e pense um pouco. (Inverti a primeira e a segunda exigência para ficar mais fácil de testar).

/**
 * Valida uma senha, de acordo com as 4 primeiras restrições solicitadas.
 * @param login O login do usuário (necessário para checar a condição 3)
 * @param senha A senha proposta pelo usuário
 * @return true se a senha estiver OK, e false em caso contrário. 
 */
public static boolean validarSenha (String login, String senha) {
//- Nao pode ser zero ou nulo
//- Tamanho minimo de 8 caracteres
//- Nao pode comecar com os 3 primeiros digitos do login do usuario
//- Tem que ter no minimo 2 letras e 2 numeros na senha 
}
Luffy

vlw pelo caminho,

mas gostaria de ver com os codigos , se for possivel

obrigado,

luffy

E

Para achar o comprimento de uma string, use o método length()
Para obter uma substring de uma string, use o método substring()
Para comparar uma string com outra, use o método equals()
Para saber o que é tudo isso, olhe a documentação:

http://java.sun.com/javase/6/docs/api/java/lang/String.html

Se seu inglês é deficiente, peça para o Google traduzir:

http://www.google.com.br/language_tools?hl=pt-BR

E para pensar, a cabeça é sua.

marcosharbs
if(senha.length()<8){
     System.out.println("Senha tem menos que 8 caracteres");
}
if(senha != null && !senha.equals("0")){
    System.out.println("Senha não é nula nem 0");
}
if(!senha.substring(0, 3).equals(login.substring(0, 3))){
      System.out.println("Senha não começa com os 3 primeiros digitos do login");
}
int numeros = 0;
		int letras = 0;
		
		for(int i=0; i<senha.length(); i++){
			Character letra = senha.charAt(i);
			try{
				Integer.valueOf(letra.toString());
				numeros++;
			}catch (Exception e) {
				letras++;
				continue;
			}
		}
		
		if(numeros >= 2 && letras >= 2){
			System.out.println("Senha tem 2 ou mais números e 2 ou mais letras");
		}
Date dataInsercao = new Date(); //esta data teria que ser pega do banco ou algum lugar onde tem esta informação
		Date dataAtual = new Date(); //Data Atual
		
		Calendar datInsercaoAux = Calendar.getInstance();
		datInsercaoAux.setTime(dataInsercao);
		datInsercaoAux.add(Calendar.DAY_OF_MONTH, 45);
		
		if(!datInsercaoAux.getTime().after(dataAtual)){
			System.out.println("Senha expirou");
		}
Luffy

marcosharbs

muito obrigado,

foi de muita ajuda

uma outra duvida, existe algum package de seguranca logica em java q cuida de todas essas regras de senha e login?

obrigado,

Luffy

=]

marcosharbs

de origem acho que não
mas talvez tenha algumas libs que alguém desenvolveu e disponibilizou
ai tem que pesquisar
mas podes implementar no seu sistema vc mesmo essa parte de segurança
ai vc faz as validações do jeito que deseja

Luffy

joia marcosharbs,

obrigado novamente

att,

Luffy

=]

Criado 6 de outubro de 2009
Ultima resposta 6 de out. de 2009
Respostas 7
Participantes 3