Advertisement
Guest User

Untitled

a guest
Jun 27th, 2017
59
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.88 KB | None | 0 0
  1. import java.util.Scanner;
  2. import java.io.UnsupportedEncodingException;
  3. import java.security.MessageDigest;
  4. import java.security.NoSuchAlgorithmException;
  5.  
  6. public class ExamenPassword {
  7.  
  8.     public static void main(String[] reinaDeEspadasFTW) {
  9.         System.out.println("Introduce una password:");
  10.         Scanner sc = new Scanner(System.in);
  11.         String password = sc.nextLine();
  12.        
  13.         //Eliminamos espacios al inicio y final de la password
  14.         password = password.trim();
  15.         //Longitud
  16.         System.out.println("Longitud: " + password.length());
  17.         //Comprueba longitud
  18.         System.out.println("Longitud correcta: " + comprobarLongitud(password));
  19.         //Comprueba digitos
  20.         System.out.println("Tiene al menos un digito: " + comprobarCaracteres(password, 0));
  21.         //Comprueba letras
  22.         System.out.println("Tiene al menos una letra: " + comprobarCaracteres(password, 1));
  23.         //Comprueba caracteres especiales
  24.         System.out.println("Tiene al menos un caracter especial: " + comprobarCaracteres(password, 2));
  25.         //Contraseña invertida
  26.         System.out.println("La contraseña invertida es: " + invertirPassword(password));
  27.         //La contraseña encriptada en md5 para guardar en la db
  28.         try {
  29.             System.out.println("La contraseña encriptada en md5 para guardar en la db es: " + encriptarMD5(password));
  30.         } catch (NoSuchAlgorithmException e) {
  31.             throw new Error("No se ha encontrado MD5 en el JRE.", e);
  32.         } catch (UnsupportedEncodingException e) {
  33.             throw new Error("Error de Codificación.", e);
  34.         }
  35.     }
  36.  
  37.     private static boolean comprobarLongitud(String pPassword) {
  38.         int longitud = pPassword.length();
  39.         return (longitud >= 6 && longitud <= 10) ? true : false;
  40.     }
  41.  
  42.     private static boolean comprobarCaracteres(String pPassword, int modo) {
  43.         boolean encontrado = false;
  44.         int i = 0;
  45.         while (!encontrado && i < pPassword.length()){
  46.             if (modo == 0)
  47.                 if (Character.isDigit(pPassword.charAt(i)))encontrado = true;
  48.                 else i++;
  49.             if (modo == 1)
  50.                 if (Character.isLetter(pPassword.charAt(i)))encontrado = true;
  51.                 else i++;
  52.             if (modo == 2)
  53.                 if (!Character.isLetter(pPassword.charAt(i)) && !Character.isDigit(pPassword.charAt(i)))encontrado = true;
  54.                 else i++;
  55.         }
  56.         return encontrado;
  57.     }
  58.    
  59.     private static String encriptarMD5(String pPassword) throws NoSuchAlgorithmException, UnsupportedEncodingException {
  60.         final StringBuilder sbMd5Hash = new StringBuilder();
  61.         final MessageDigest m = MessageDigest.getInstance("MD5");
  62.         m.update(pPassword.getBytes("UTF-8"));
  63.  
  64.         final byte data[] = m.digest();
  65.  
  66.         for (byte element : data) {
  67.             sbMd5Hash.append(Character.forDigit((element >> 4) & 0xf, 16));
  68.             sbMd5Hash.append(Character.forDigit(element & 0xf, 16));
  69.         }
  70.         return sbMd5Hash.toString();
  71.     }
  72.  
  73.     private static String invertirPassword(String pPassword) {
  74.         String invertida = "";
  75.         for (int i = 0; i < pPassword.length(); i++) invertida = pPassword.charAt(i) + invertida;
  76.         return invertida;
  77.     }
  78. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement