Enkripsi MD5 dengan Java
10:34 | Author: Unknown

Akhirnya... Mulai menulis lagi di Blog, kali ini saya akan menulis tentang, bagaimana melakukan enkripsi dengan menggunakan algoritma MD5 pada bahasa pemrograman Java. Dalam bahasa pemrograman java terdapat sebuah class yaitu javax.crypto yang dapat digunakan untuk melakukan penyandian pada suatu string.

Pada class javax.crypto sudah banyak disediakan algoritma kriptografi, sehingga kita bisa langsung memakai dan menerapkan di kode program. Beberapa metode kriptografi yang sudah ada pada class javax.crypto adalah metode kriptografi dengan algoritma MD5, DES, dan masih banyak lagi.
Ehm, di postingan kali ini saya ingin mencoba menerapkan metode algoritma kriptografi MD5 dengan memanfaatkan class javax.crypto. MD5 merupakan fungsi hash satu arah yang diciptakan oleh Ron-Rivest. MD-5 biasanya digunakan untuk mengetahui bahwa pesan yang dikirim tidak ada perubahan sewaktu berada di jaringan. Dalam Algoritma MD-5 secara garis besar mengambil pesan yang mempunyai panjang variabel diubah menjadi ‘sidik jari’ atau ‘intisari pesan’ yang mempunyai panjang tetap yaitu 128 bit. ‘Sidik jari’ ini tidak dapat dibalik untuk mendapatkan pesan, dengan kata lain tidak ada orang yang dapat melihat pesan dari ‘sidik jari’ MD-5.

Oke sekarang kita langsung menuju ke kode programnya. Langkah yang pertama, saya membuat sebuah class yang bernama MD5Encrypt yang berguna sebagai engine untuk melakukan enkripsi.


package com.wahyu.encrypt;

import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;

/**
*
* @author wahyusumartha
*/
public class MD5Encrypt {
private String plainTeks;
MessageDigest messageDigest;

public MD5Encrypt(String plainTeks){
this.plainTeks = plainTeks;
}

public String encrypt(String plaintext) throws NoSuchAlgorithmException{
this.messageDigest = MessageDigest.getInstance("MD5");
System.out.println("Metode Enkripsi : " + this.getMessageDigest().getAlgorithm());
System.out.println("Provider : " + this.getMessageDigest().getProvider());
System.out.println("ToString :" + this.getMessageDigest().toString());

String input = this.getPlainTeks();
this.getMessageDigest().update(input.getBytes());
byte[] output = this.getMessageDigest().digest();
return bytesToHex(output);


}

public MessageDigest getMessageDigest() {
return messageDigest;
}

public void setMessageDigest(MessageDigest messageDigest) {
this.messageDigest = messageDigest;
}

public String getPlainTeks() {
return plainTeks;
}

public void setPlainTeks(String plainTeks) {
this.plainTeks = plainTeks;
}

public static String bytesToHex(byte[] b) {
char hexDigit[] = {'0', '1', '2', '3', '4', '5', '6', '7',
'8', '9', 'A', 'B', 'C', 'D', 'E', 'F'};
StringBuffer buf = new StringBuffer();
for (int j=0; j> 4) & 0x0f]);
buf.append(hexDigit[b[j] & 0x0f]);
}
return buf.toString();
}


}

di dalam class MD5Encrypt terdapat sebuah fungsi yaitu bytesToHex, yang berfungsi untuk mengubah data dari tipe bytes, ke bentuk Hexa.

Setelah itu , class MD5Encrypt yang sudah kita buat , akan kita coba dengan membuat fungsi main

package com.wahyu.test;

import com.wahyu.encrypt.MD5Encrypt;
import java.security.NoSuchAlgorithmException;

/**
*
* @author wahyusumartha
*/
public class Test {
public static void main(String[] args) throws NoSuchAlgorithmException {
String input = "banjarmasin";
MD5Encrypt mde = new MD5Encrypt(input);
System.out.println("MD5 (" + input + ") = " + mde.encrypt(input) );
}

}


jika program di eksekusi maka akan tampil output seperti di bawah ini


Metode Enkripsi : MD5
Provider : SUN version 1.6
ToString :MD5 Message Digest from SUN,

MD5 (banjarmasin) = 2A9C716F0D0ED2CD71EE3FA93DDF9719
BUILD SUCCESSFUL (total time: 2 seconds)

Nah, cukup mudah bukan.. melakukan enkripsi dalam pemrograman java dengan menggunakan class javax.crypto.
temen-temen bisa eksplor lagi dengan metode algoritma kriptografi yang lainnya





This entry was posted on 10:34 and is filed under . You can follow any responses to this entry through the RSS 2.0 feed. You can leave a response, or trackback from your own site.

2 comments:

On 14 April 2010 at 21:30 , BlackJack said...

mantab...seandainya, kita lupa pass sendiri gmn cara nya...apa dengan enkripsi ini bisa mengetahui pass kita....

 
On 6 April 2011 at 02:08 , contohsaja said...

for (int j=0; j> 4) & 0x0f]);
bagian sini nya error mas..
kenapa ya?