L’encriptació de dades és utilitzada en la majoria dels sistemes, ja que ens permet fer il·legible informació considera important, per exemple una contrasenya o el nom d’una imatge. És per això que en aquest tutorial aprendrem a xifrar en MD5 i SHA1 amb Java.
Com xifrar en MD5 i SHA1 amb Java?
Abans de començar és important saber que una dada encriptat és irreversible, això vol dir que no es pot obtenir de cap manera la dada original a partir de l’hash generat, és per això que només realitzarem les funcions que facin l’encriptació.
Ara podem passar a l’ codi font, la següent classe permet xifrar una cadena usant els mètodes estàtics MD5 i 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 & 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");}}
Ara per provar la classe anterior podem fer els següent:
public static void main(String args) { System.out.println(Hash.md5("Hola Mundo!")); System.out.println(Hash.sha1("Hola Mundo!"));}