Hashing MD5 pada Java

MD5 kepanjangan dari Message Digest 5, banyak digunakan untuk validasi ukuran file (checksum) yang kita download dari internet. MD5 juga banyak digunakan pada website untuk enkripsi password pengguna pada saat login, sehingga password tersebut akan lebih susah untuk dibaca. Keuntungan menggunakan MD5 Hash adalah berapapun panjang karakter yang ingin kita enkripsi, panjang MD5 Hash-nya selalu sama. Kemudian perbedaan satu karakter pada String yang ingin kita enkripsi akan menghasilkan MD5 yang benar-benar berbeda. Hal itulah yang membuat MD5 banyak digunakan sampai sekarang.

MD5 Hashing pada Java

Jika pada PHP, menggunakan fungsi MD5 sangat mudah, kita tinggal memanggil fungsi md5(), dengan memasukkan parameter inputan berupa String yang mau kita enkripsi. Sedangkan pada Java, kita akan menggunakan kelas MessageDigest dari java.security.MessageDigest untuk bisa mengenkripsi String menggunakan teknik MD5 Hashing. Berikut adalah source code-nya :

File Main.java

package md5.test;
import java.io.UnsupportedEncodingException;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import java.util.logging.Level;
import java.util.logging.Logger;
/**
 *
 * @author Herdi Naufal
 */
public class Main {
    public static String md5Java(String message)
    {
        String digest = null;
        try {
                MessageDigest md = MessageDigest.getInstance("MD5");
                byte[] hash = md.digest(message.getBytes("UTF-8"));
                //merubah byte array ke dalam String Hexadecimal
                StringBuilder sb = new StringBuilder(2*hash.length);
                for(byte b : hash)
                {
                        sb.append(String.format("%02x", b&0xff));
                }
                digest = sb.toString();
            } catch (UnsupportedEncodingException ex)
                {
                        Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);
                } catch (NoSuchAlgorithmException ex)
                        {
                                Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);
                        }
                        return digest;
    }
    public static void main(String[] args)
    {
        String original = "TWOH's Enginnering";
        String encrypt = md5Java(original);
        System.out.println("Kalimat original : "+original);
        System.out.println("MD5 Hashing : "+encrypt);
    }
}

Intinya adalah kita pertama-tama merubah String ke dalam byte array, setelah itu kita merubah kembali byte array tersebut ke dalam hexadecimal MD5 String. Inilah output dari program di atas :


run:
Kalimat original : TWOH's Enginnering
MD5 Hashing : 86b09a5b5734d1342317bbb50426ec7b
BUILD SUCCESSFUL (total time: 1 second)

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s