Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.util.Scanner;
- import java.io.UnsupportedEncodingException;
- import java.security.MessageDigest;
- import java.security.NoSuchAlgorithmException;
- public class ExamenPassword {
- public static void main(String[] reinaDeEspadasFTW) {
- System.out.println("Introduce una password:");
- Scanner sc = new Scanner(System.in);
- String password = sc.nextLine();
- //Eliminamos espacios al inicio y final de la password
- password = password.trim();
- //Longitud
- System.out.println("Longitud: " + password.length());
- //Comprueba longitud
- System.out.println("Longitud correcta: " + comprobarLongitud(password));
- //Comprueba digitos
- System.out.println("Tiene al menos un digito: " + comprobarCaracteres(password, 0));
- //Comprueba letras
- System.out.println("Tiene al menos una letra: " + comprobarCaracteres(password, 1));
- //Comprueba caracteres especiales
- System.out.println("Tiene al menos un caracter especial: " + comprobarCaracteres(password, 2));
- //Contraseña invertida
- System.out.println("La contraseña invertida es: " + invertirPassword(password));
- //La contraseña encriptada en md5 para guardar en la db
- try {
- System.out.println("La contraseña encriptada en md5 para guardar en la db es: " + encriptarMD5(password));
- } catch (NoSuchAlgorithmException e) {
- throw new Error("No se ha encontrado MD5 en el JRE.", e);
- } catch (UnsupportedEncodingException e) {
- throw new Error("Error de Codificación.", e);
- }
- }
- private static boolean comprobarLongitud(String pPassword) {
- int longitud = pPassword.length();
- return (longitud >= 6 && longitud <= 10) ? true : false;
- }
- private static boolean comprobarCaracteres(String pPassword, int modo) {
- boolean encontrado = false;
- int i = 0;
- while (!encontrado && i < pPassword.length()){
- if (modo == 0)
- if (Character.isDigit(pPassword.charAt(i)))encontrado = true;
- else i++;
- if (modo == 1)
- if (Character.isLetter(pPassword.charAt(i)))encontrado = true;
- else i++;
- if (modo == 2)
- if (!Character.isLetter(pPassword.charAt(i)) && !Character.isDigit(pPassword.charAt(i)))encontrado = true;
- else i++;
- }
- return encontrado;
- }
- private static String encriptarMD5(String pPassword) throws NoSuchAlgorithmException, UnsupportedEncodingException {
- final StringBuilder sbMd5Hash = new StringBuilder();
- final MessageDigest m = MessageDigest.getInstance("MD5");
- m.update(pPassword.getBytes("UTF-8"));
- final byte data[] = m.digest();
- for (byte element : data) {
- sbMd5Hash.append(Character.forDigit((element >> 4) & 0xf, 16));
- sbMd5Hash.append(Character.forDigit(element & 0xf, 16));
- }
- return sbMd5Hash.toString();
- }
- private static String invertirPassword(String pPassword) {
- String invertida = "";
- for (int i = 0; i < pPassword.length(); i++) invertida = pPassword.charAt(i) + invertida;
- return invertida;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement