Tutorial Menggunakan MD5 Hashing pada Java

Sudah lama sekali saya tidak menulis tutorial di sini. Mohon maklum karena jadwal akhir-akhir ini yang semakin padat membuat saya tidak bisa berlama-lama mengurusi blog ini. ^^

Oke, kali ini saya akan berbagi tutorial tentang cara menggunakan MD5 Hashing pada Java. Kegunaan MD5 Hashing sendiri sangat banyak, khususnya pada bidang security dan validasi data. 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

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
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);
    }
}

Oke, itulah contoh penggunaan MD5 pada Java. 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)

Semoga berguna. ^^

Leave a Reply

Do NOT follow this link or you will be banned from the site!