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.

Deja un comentario

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