Como Encriptar Contraseñas en MD5 en Java?

Hola amigos de yoelprogramador.com. En este articulo les quiero dejar un método en Java que nos permite encriptar contraseñas en MD5.

Este medido convierte una string dada a MD5 nos servira para poder almacenar contraseñas o consultarltas.

El método es el siguiente.

public static String getMD5(String input) {
 try {
 MessageDigest md = MessageDigest.getInstance("MD5");
 byte[] messageDigest = md.digest(input.getBytes());
 BigInteger number = new BigInteger(1, messageDigest);
 String hashtext = number.toString(16);

 while (hashtext.length() < 32) {
 hashtext = "0" + hashtext;
 }
 return hashtext;
 }
 catch (NoSuchAlgorithmException e) {
 throw new RuntimeException(e);
 }
 }

La forma de llamarlo sería:

getMD5("12345"); //El password le pasamos en texto plano

//Ahora voy a imprimir
System.out.print(getMD5("12345");

Esto nos mostraría lo siguiente
827ccb0eea8a706c4c34a16891f84e7b

Como pueden ver es así de fácil, yo lo uso en algunos de los sistemas que creo.

Un detalle importante es que les pedirá que importen algunas librerías.

import java.math.BigInteger;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;

Pero eso ustedes ya sabrán como hacerlo. Espero que les haya servido

 

7 comentarios en “Como Encriptar Contraseñas en MD5 en Java?”

    1. Puedes usar el siguiente metodo.
      Necesitaras importar las siguientes librerias
      import java.security.MessageDigest;
      import java.util.Arrays;
      import javax.crypto.Cipher;
      import javax.crypto.SecretKey;
      import javax.crypto.spec.SecretKeySpec;
      import org.apache.commons.codec.binary.Base64;

      public static String Desencriptar(String textoEncriptado) throws Exception {

      String secretKey = "qualityinfosolutions"; //llave para desenciptar datos
      String base64EncryptedString = "";

      try {
      byte[] message = Base64.decodeBase64(textoEncriptado.getBytes("utf-8"));
      MessageDigest md = MessageDigest.getInstance("MD5");
      byte[] digestOfPassword = md.digest(secretKey.getBytes("utf-8"));
      byte[] keyBytes = Arrays.copyOf(digestOfPassword, 24);
      SecretKey key = new SecretKeySpec(keyBytes, "DESede");

      Cipher decipher = Cipher.getInstance("DESede");
      decipher.init(Cipher.DECRYPT_MODE, key);

      byte[] plainText = decipher.doFinal(message);

      base64EncryptedString = new String(plainText, "UTF-8");

      } catch (Exception ex) {
      }
      return base64EncryptedString;
      }

    2. No es posible, MD5 es una función hashing no reversible (de una sola vía). Solo se compara un string en texto plano para transofrmarlo de nuevo y compararlo con la cadena Hash almacenada.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.