Todavía no he buceado mucho en JavaSE7, pero que yo recuerde JSE6 no incluía ninguna función que encriptara en MD5, y a la hora de trabajar con contraseñas (a nivel de seguridad web, por ejemplo) este algoritmo es muy útil. Normalmente en mis desarrollos en PHP suelo encriptar en el cliente usando una función md5 en Javascript, pero en Java podréis hacerlo con el siguiente código. Se trata de una función que recibe una cadena y devuelve su hash md5.
Bueno, primero tendréis que incluir estas dos librerías:
import java.security.MessageDigest; import java.security.NoSuchAlgorithmException;
En todo caso, si usáis Eclipse o NetBeans para programar en Java ya os pedirá que importéis dichas librerías al añadir referencias a ellas en el código. La función es la siguiente:
public static String cryptMD5(String textoPlano) { try { private static final char[] HEXADECIMALES = { '0','1','2','3','4','5','6','7','8','9','a','b','c','d','e','f' }; MessageDigest msgdgt = MessageDigest.getInstance("MD5"); byte[] bytes = msgdgt.digest(textoPlano.getBytes()); StringBuilder strCryptMD5 = new StringBuilder(2 * bytes.length); for (int i = 0; i < bytes.length; i++) { int low = (int)(bytes[i] & 0x0f); int high = (int)((bytes[i] & 0xf0) >> 4); strCryptMD5.append(HEXADECIMALES[high]); strCryptMD5.append(HEXADECIMALES[low]); } return strCryptMD5.toString(); } catch (NoSuchAlgorithmException e) { return null; } }
La he testeado y ha ido funcionando, así que creo que os puede hacer un buen servicio a la hora de trabajar con contraseñas de forma segura.
ok lo voy a intertar chido por compartir tu idea
Muchas gracias !
para desincriptar tu md5 te falto
No se puede desencriptar un MD5.
he copiado el codigo y en esta linea me pone que es ilegal modificar la variable solo final esta permitido
private static final char[] HEXADECIMALES = { ‘0’,’1′,’2′,’3′,’4′,’5′,’6′,’7′,’8′,’9′,’a’,’b’,’c’,’d’,’e’,’f’ };