Encriptar MD5 y SHA1 con Java

Encriptar en MD5 y SHA1 con Java

La encriptación de datos es utilizada en la mayoría de los sistemas, ya que nos permite hacer ilegible información considera importante, por ejemplo una contraseña o el nombre de una imagen. Es por eso que en este tutorial aprenderemos a encriptar en MD5 y SHA1 con Java.

¿Cómo encriptar en MD5 y SHA1 con Java?

Antes de comenzar es importante saber que un dato encriptado es irreversible, esto quiere decir que no se puede obtener de ninguna manera el dato original a partir del hash generado, es por eso que solamente vamos a realizar las funciones que hagan la encriptación.

Ahora podemos pasar al código fuente, la siguiente clase permite encriptar un string usando los métodos estáticos MD5 y SHA1:

public class Hash {

	/* Retorna un hash a partir de un tipo y un texto */
	public static String getHash(String txt, String hashType) {
		try {
			java.security.MessageDigest md = java.security.MessageDigest
					.getInstance(hashType);
			byte[] array = md.digest(txt.getBytes());
			StringBuffer sb = new StringBuffer();
			for (int i = 0; i < array.length; ++i) {
				sb.append(Integer.toHexString((array[i] & 0xFF) | 0x100)
						.substring(1, 3));
			}
			return sb.toString();
		} catch (java.security.NoSuchAlgorithmException e) {
			System.out.println(e.getMessage());
		}
		return null;
	}

	/* Retorna un hash MD5 a partir de un texto */
	public static String md5(String txt) {
		return Hash.getHash(txt, "MD5");
	}

	/* Retorna un hash SHA1 a partir de un texto */
	public static String sha1(String txt) {
		return Hash.getHash(txt, "SHA1");
	}

}

Ahora para probar la clase anterior podemos hacer los siguiente:

public static void main(String[] args) {
  System.out.println(Hash.md5("Hola Mundo!"));
  System.out.println(Hash.sha1("Hola Mundo!"));
}

Bueno gente, espero que les haya sido de gran utilidad este tutorial y ante cualquier problema no duden en dejar un comentario.

Compartilo en
Share on FacebookTweet about this on TwitterShare on Google+Share on LinkedInPin on PinterestEmail this to someone

AboutJosé Di Meglio

Apasionado de la tecnología y programación. Aportando información gratuita sobre el mundo de la informática.

5 comments

    1. Hola Yesid, me alegra que te haya servido. Lamentablemente la inversa no se puede hacer, más que nada por un tema de seguridad. En el caso de que quieras comparar un hash con un texto primero hay que hacer la conversión de ese texto a MD5 y luego compararlos.

Deja un comentario

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