Jika berbicara mengenai keamanan maka istilah Hash mungkin tidak asing lagi di telinga kita. Perlui diketahui sebelum mengenal jauh tentang hash, kalo berdasarkan literatur Bung wikipedia ...n_n...Fungsi Hash "merupakan suatu fungsi yang secara efisien mengubah string input dengan panjang berhingga menjadi string output dengan panjang tetap yang disebut nilai hash." Namun berdasarkan ijma' pendapat para ahli dalam bidangnya hash setelah saya kumpulkan kurang lebih seperti ini Hash adalah suatu teknik "klasik" dalam Ilmu Komputer yang banyak digunakan dalam praktek secara mendalam.
Hash merupakan suatu metode yang secara langsung mengakses record-record dalam suatu tabel dengan melakukan transformasi aritmatik pada key yang menjadi alamat dalam tabel tersebut. Key merupakan suatu input dari pemakai di mana pada umumnya berupa nilai atau string karakter. Setelah penjelasan sedikit tentang hash diatas maka sekarang kita akan mulai berbicara mengenai MD5. MD5 merupakan salah satu dari jenis hash yang cukup ampuh dalam fungsinya untuk enckripsi data atau deretan suatu karakter. Encripsi data dengan menggunakan hash seperti ini sering digunakan dalam pemrograman baik yang berbasis web atau desktop. Dalam java juga terdapat fungsi untuk menangani hash MD5 yaitu dengan menggunakan MessageDigest. Adapun cara penggunaannya cukup mudah. berikut adalah contoh method untuk mendapatakan Hash tipe MD5 dengan java :
public static String getMD5_Hash(String text) throws NoSuchAlgorithmException, UnsupportedEncodingException{
String retval = null;
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);
}