Enkripsi MD5 dalam Java

| More
Secara luas dengan hash value 128-bit. MD5 di desain oleh Ronald Rivest pada tahun 1991 untuk menggantikan hash function sebelumnya, MD4. Walaupun pada tahun 1996 ditemukan kecacatan pada metode ini, namun penggunaan metode ini dalam enkripsi data masih umum digunakan. Beberapa aplikasi database (MySQL, PostgreSQL, dll) masih menyediakan metode ini. Bahkan untuk beberapa aplikasi CMS menggunakan metode ini untuk menyimpan password login (contoh: Moodle). Enkripsi MD5 memang irreversible namun penggunaannya adalah dengan membandingkan data yang tersimpan (sudah terenkripsi) dengan hasil enkripsi data yang akan dibandingkan. Sehingga pengujian dapat dilakukan tanpa harus mengembalikan (dekrip) data.

Dalam implementasi di bahasa Java, sudah tersedia library untuk itu sehingga mempermudah dalam menggunakan metode itu:
import java.io.UnsupportedEncodingException;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;

public class SimpleMD5 {

private static String convertToHex(byte[] data) {
StringBuffer buf = new StringBuffer();
for (int i = 0; i < data.length; i++) {
int halfbyte = (data[i] >>> 4) & 0x0F;
int two_halfs = 0;
do {
if ((0 <= halfbyte) && (halfbyte <= 9))
buf.append((char) ('0' + halfbyte));
else
buf.append((char) ('a' + (halfbyte - 10)));

halfbyte = data[i] & 0x0F;
} while(two_halfs++ < 1);
}
return buf.toString();
}

public static String MD5(String text)
throws NoSuchAlgorithmException, UnsupportedEncodingException {
MessageDigest md;
md = MessageDigest.getInstance("MD5");
byte[] md5hash = new byte[32];
md.update(text.getBytes("iso-8859-1"), 0, text.length());
md5hash = md.digest();
return convertToHex(md5hash);
}
}

Contoh penggunaan :
String encrypted = SimpleMD5.MD5(“HMFT”);

Maka akan didapatkan nilai : e747769f238ccfc30717c7c95b3c05d9

1 komentar

Make A Comment
top