Crear hash SHA1, MD5 en Java


Bueno, dado que Fredy durante la madrugada publicó como encriptar con SHA1 y MD5 con c#, y dado que ni en java ni en c# tenemos un metodo md5() o sha1() como en php, aquí les traigo el código para los “Javeros”, es de una clase Encrypt que uso en mis proyectos, que sirve para poder encriptar en md5 y sha1.

package com.ifxperu.utils;

import java.security.MessageDigest;

public abstract class Encrypt {

public static String sha1(String message) {
return encrypt(message, "SHA1");
}

public static String md5(String message) {
return encrypt(message, "MD5");
}

private static String encrypt(String message, String type) {
MessageDigest md;
byte[] buffer, digest;
StringBuilder hash = new StringBuilder();
try {
buffer = message.getBytes("UTF-8");
md = MessageDigest.getInstance(type);
} catch (Exception e) {
throw new RuntimeException(e);
}
md.update(buffer);
digest = md.digest();
for (byte b : digest) {
hash.append(String.format("%02x", b & 0xff));
}
return hash.toString();
}
}

El uso sería simple:

String var1 = Encrypt.sha1("miclave123");
String var2 = Encrypt.md5("miclave123");
String var3 = Encrypt.md5(Encrypt.sha1("miclave123"));
String var4 = Encrypt.sha1(Encrypt.md5("miclave123"));//En lo personal prefiero esta jeje;