Enkripsi MD5 dalam Java
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:
Contoh penggunaan :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);
}
}
String encrypted = SimpleMD5.MD5(“HMFT”);
Maka akan didapatkan nilai : e747769f238ccfc30717c7c95b3c05d9
Comment Form under post in blogger/blogspot