Enkripsi MD5 dengan Java


Okeh bagi – bagi source lagi ney… ane mau bagi enkripsi MD5 untuk agan – agan sekalian… tapi Enkripsi MD5 ini hanya untuk text aja, kalau untuk file silahkan kembangkan lagi dengan class FileInputStream dan StringBuilder… Java juga mendukung banyak jenis enkripsi pada kelasMesageDiggest dengan method getInstance(); . Soo silahkan coba – coba untuk membuat enkripsi yang lain. Suatu saat mungkin anda membutuhkan class yang telah anda buat.

Okeh ini sourcenya :

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

/**
 * 
 * @author Lalu Erfandi Maula Yusnu
 */
public class ConverterUtil {

	/**
	 * This nethod is used for encrypt String to MD5
	 * @param text String
	 * @return String
	 */
	public static String MD5(String text){
		String output 		= null;
		try {
			MessageDigest dg = MessageDigest.getInstance("MD5");
			dg.reset();
			dg.update(stringToBytes(text));
			byte[] hasher 	= new byte[32];
			hasher 			= dg.digest();
			return bytesToHexString(hasher);
		} catch (NoSuchAlgorithmException e) {
			System.out.println("There is No MessageDigest Instance of MD5");
			System.exit(1);
		} 

		return output;
	}

	/**
	 * This method used for converting byte array to hex string
	 * 
	 * @param hasher byte[]
	 * @return String
	 */
	public static String bytesToHexString(byte[] hasher){
		String HEXES 		=  "0123456789abcdef";
		StringBuilder hex 	=  new StringBuilder( 2 * hasher.length );
		for ( final byte b : hasher ) {
			hex.append(HEXES.charAt((b & 0xF0) >> 4))
			.append(HEXES.charAt((b & 0x0F)));
		}
		return hex.toString();
	}

	/**
	 * This method used for converting byte array to string
	 * @param hasher byte[]
	 * @return String
	 */
	public static String bytesToString(byte[] hasher){
		String hex = bytesToHexString(hasher);
		return hexToString(hex);
	}

	/**
	 * This method used for converting string to bytes
	 * @param str String
	 * @return byte[]
	 */
	public static byte[] stringToBytes(String str){
		int len = str.length();
		byte[] out = new byte[len];
		for (int i=0; i<len; i++) out[i] = (byte) ( str.charAt(i) & 0xFF);
		return out;
	}


	/**
	 * This method used for converting hex to string
	 * @param hexString String
	 * @return String
	 */
	public static String hexToString(String hexString){
		StringBuilder sb = new StringBuilder();
		for(int i=0; i<hexString.length()-1; i+=2 ){
			int decimal = Integer.parseInt(hexString.substring(i, (i + 2)), 16);
			sb.append((char)decimal);
		}
		return sb.toString();
	}

}

nah untuk menggunakan source ini ini sintaksnya:

Public class Test {
	public static void main(String[] args){
		String text="Ini text yang akan di enkripsi dengan MD5";
		String md5 = ConverterUtil.MD5(text);
		System.out.println(md5);
	}
}

Hasilnya kurang lebih seperti ini :
6ddc9d6e411d0dfe769750b07d5ffb08

Semoga bermanfaat, sekian dan terima kasih….

Advertisements

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 )

Google+ photo

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

Connecting to %s