martes, 2 de febrero de 2010

Md5 en java (java.security.MessageDigest)

Hola aquí pongo un código que estaba buscando hace tiempo ocupando la API (java.security.MessageDigest) de java para encriptar una cadena.

----------------------


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

public class Md5 {

private MessageDigest alg;
private String md5;


/**
*
* @param mensaje
* @throws NoSuchAlgorithmException
*/

public void md5(String mensaje) throws NoSuchAlgorithmException{
alg = MessageDigest.getInstance("MD5");//implementa el algoritmo especificado
byte[] bytes = mensaje.getBytes();
computeDigest(bytes);
}


public String getMd5() {
return md5;
}


public void setMd5(String md5) {
this.md5 = md5;
}
/**
* Realiza la digestion del algoritmo MD5
* @param bytes
*/

public void computeDigest(byte[] bytes){
String cad="";
alg.reset();//restaura el resumen
alg.update(bytes);//actualiza el resumen, empleando los bytes especificados
byte[] hash = alg.digest();//completa el calculo del codigo de dispersivo
for(int i = 0; i < hash.length;i++){
int v = hash[i] & 0xFF;
if(v < 16) cad+="0";
cad+=Integer.toString(v,16).toUpperCase()+"";
}

this.setMd5(cad);
}


}

----------------------------------------------------

La manera de ocupar la clase seria la siguiente:

Md5 md5 = new Md5();
md5.md5("Hola mundo");
String md5String = md5.getMd5();
System.out.print(" md5 "+md5String);

No hay comentarios.: