Segurança Logica - Login/Senha em Java

7 respostas
L

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 
}
L

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.

M
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");
		}
L

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

=]

M

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

L

joia marcosharbs,

obrigado novamente

att,

Luffy

=]

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