Encriptar Passwords en MD5 en Java

Encriptar Passwords en MD5 en Java. En vista de que e visto muchos comentarios a la entrada de blog Autentificar usuarios en Java, voi a ampliar un poco ese tema con algo extra. Digo esto porque pienso utilizar estos mismos fundamentos para almacenar los passwords encriptados (en MD5) de los usuarios en la BD. Googleando por la red me encontre (al igual que muchos otros) muchas maneras muy similares de encriptar en MD5, algunas un poco equivocadas, algunas con mas cosas que otras, pero la que mas me gusto es la que voi a mostrar a continuacion.

Antes que todo muestro la configuracion de la computadora en la que hice esta prueba:

Tipo de Computadora: Laptop, Toshiba
S.O.: Linux, distribucion Ubuntu 10.10 [Maverick]
version del Kernel: 2.6.35-27
Version de la JVM: 1.6.0_26

La clase siguiente contiene un metodo muy sencillo que recibe una cadena (String) y regresa otra pero encriptada en MD5. Por si no lo sabias, hasta este momento creo que java no cuenta con algun metodo para encriptar en MD5, asi que tenemos que ingeniarnosla de alguna manera para encriptar en este formato. Bueno el codigo es el siguiente para hacer la encriptacion es:
TestEncriptarMD5.java

/**
 *      Instituto Tecnologico de Zacatepec
 * Descripcion:   Encriptacion de paswords en MD5
 * @author Gonzalo Silverio
 * Fecha: 03-12-2011
 * Archivo:  TestEncriptarMD5.java
 */

import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;

public class TestEncriptarMD5
{
	private static final char[] CONSTS_HEX = { '0','1','2','3','4','5','6','7','8','9','a','b','c','d','e','f' };
  	public static String encriptaEnMD5(String stringAEncriptar)
	{
		try
		{
		   MessageDigest msgd = MessageDigest.getInstance("MD5");
		   byte[] bytes = msgd.digest(stringAEncriptar.getBytes());
		   StringBuilder strbCadenaMD5 = new StringBuilder(2 * bytes.length);
		   for (int i = 0; i < bytes.length; i++)
		   {
		       int bajo = (int)(bytes[i] & 0x0f);
		       int alto = (int)((bytes[i] & 0xf0) >> 4);
		       strbCadenaMD5.append(CONSTS_HEX[alto]);
		       strbCadenaMD5.append(CONSTS_HEX[bajo]);
		   }
		   return strbCadenaMD5.toString();
		} catch (NoSuchAlgorithmException e) {
		   return null;
		}
	}

	public static void main(String args[])
	{
		System.out.println("\n\nEncriptacion en MD5 de 123: '"+encriptaEnMD5("123")+"'");
		System.out.println("Encriptacion en MD5 de hola: '"+encriptaEnMD5("hola")+"'");
	}
}

Como se puede observar el metodo esta super corto y efectivamente se obtiene la cadena encriptada en MD5 y para probarlo a continuacion la compilacion y ejecucion de la clase anterior:

Ejemplo de encriptacion en MD5 en Java

Ejemplo de encriptacion en MD5 en Java

Bueno hasta pronto y ya sabes si gustan el codigo basta con dejar su email.  Suerte!!

Acerca de gonzasilve
Freelance Web Developer.

3 Responses to Encriptar Passwords en MD5 en Java

  1. jorge mendoza dice:

    jorge_mendoza1a@hotmail.com

  2. Agustin dice:

    Buenas Gonzalo.

    Quisiera saber si ya lo tenias terminado y si puedes hacer entrega del mismo ya que lo requiero para mi web con la conexión md5 que usted me ha explicado perfectamente.

    Muchas gracias desde ya, y lo mas seguro necesite alguna ayuda mas.

    Si es posible algún método de poder hablar con usted y poder mejorar mis trabajos seria algo perfecto.

    Saludos Cordiales
    Agustín Penino

    • gonzasilve dice:

      Upss, no todavia no Agustin. Saludos

Deja un comentario

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

Seguir

Recibe cada nueva publicación en tu buzón de correo electrónico.

Únete a otros 407 seguidores

A %d blogueros les gusta esto: