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
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).
/***Validaumasenha,deacordocomas4primeirasrestriçõessolicitadas.*@paramloginOlogindousuário(necessárioparachecaracondição3)*@paramsenhaAsenhapropostapelousuário*@returntrueseasenhaestiverOK,efalseemcasocontrário.*/publicstaticbooleanvalidarSenha(Stringlogin,Stringsenha){//- 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
Luffy
vlw pelo caminho,
mas gostaria de ver com os codigos , se for possivel
obrigado,
luffy
E
entanglement
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:
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");
}
intnumeros=0;intletras=0;for(inti=0;i<senha.length();i++){Characterletra=senha.charAt(i);try{Integer.valueOf(letra.toString());numeros++;}catch(Exceptione){letras++;continue;}}if(numeros>=2&&letras>=2){System.out.println("Senha tem 2 ou mais números e 2 ou mais letras");}
DatedataInsercao=newDate();//esta data teria que ser pega do banco ou algum lugar onde tem esta informaçãoDatedataAtual=newDate();//Data AtualCalendardatInsercaoAux=Calendar.getInstance();datInsercaoAux.setTime(dataInsercao);datInsercaoAux.add(Calendar.DAY_OF_MONTH,45);if(!datInsercaoAux.getTime().after(dataAtual)){System.out.println("Senha expirou");}
L
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
=]
M
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