Article image

HV

Hugo Vieira15/09/2023 02:39
Compartilhe

Desafio 1 - Validando a Força de Senhas no IAM

    import java.util.regex.Pattern;

    import java.util.Scanner;

    public class VerificandoSenhas {

       public static void main(String[] args) {

         Scanner scanner = new Scanner(System.in);

           String senha = scanner.nextLine();

         scanner.close();

         String resultado = verificarForcaSenha(senha);

         System.out.println(resultado);

       }

       public static String verificarForcaSenha(String senha) {

         int comprimentoMinimo = 8;

         boolean temLetraMaiuscula = Pattern.compile("[A-Z]").matcher(senha).find();

         boolean temLetraMinuscula = Pattern.compile("[a-z]").matcher(senha).find();

         boolean temNumero = Pattern.compile("\\d").matcher(senha).find();

         boolean temCaractereEspecial = Pattern.compile("\\W").matcher(senha).find();

         boolean temSequenciaComum = senha.matches(".*(?i)123456.*|.*(?i)abcdef.*");

         boolean temPalavraComum = senha.equalsIgnoreCase("password") || senha.equalsIgnoreCase("123456") || senha.equalsIgnoreCase("qwerty");

         // TODO: Verifique o comprimento mínimo e critérios de validação

       if (senha.length() < comprimentoMinimo) {

         return "Sua senha e muito curta. Recomenda-se no minimo " + comprimentoMinimo + " caracteres.";

       } else if (!temLetraMaiuscula || !temLetraMinuscula || !temNumero || !temCaractereEspecial) {

         return "Sua senha nao atende aos requisitos de seguranca.";

       } else if (temSequenciaComum || temPalavraComum) {

         return "Sua senha nao atende aos requisitos de seguranca.";

       } else {

         return "Sua senha atende aos requisitos de seguranca. Parabens!";

       }

       }

     }

    Compartilhe
    Comentários (0)