Sabtu, 06 Oktober 2012

Implemantasi MD5 Pada Kode


MD5 (Message-Digest algoritma 5) adalah fungsi hashing yang menghasilkan 128 bit (16 byte) nilai hash.
Ia datang sebagai pengganti dari MD4 yang dianggap tidak aman itu.
MD5 adalah salah satu cara teknik enkripsi

Dimana kita bisa menggunakan MD5?
MD5 terutama dapat digunakan untuk enkripsi dan untuk memeriksa integritas file.
Walau begitu, MD5 adalah memungkinkan untuk memiliki dua file yang berbeda besar
namun memiliki nilai hash yang sama.
Penggunaan contoh:

    1. Data Encryption: Anda dapat menggunakannya untuk mengenkripsi password Anda sesuatu seperti (tanggal + password + saat pendaftaran) getMD5Hash 'nilai hash' =. Di sini kita telah concatenated password yang sebenarnya dengan tanggal dan waktu pendaftaran untuk memastikan bahwa setiap kali nilai hash yang unik akan dihasilkan.
    2. Integritas file: Misalkan Anda ingin membuat sebuah file membandingkan utilitas. Jadi jika Anda akan pergi langsung dan membandingkan file itu tidak akan efisien. Jadi pertama kita bisa membandingkan ukuran, maka NILAI DARI KEDUA Hash FILES (dengan menggunakan hashing MD5) dan jika keduanya sama maka mungkin Anda dapat membandingkan teks yang sebenarnya dalam file.


Menerapkan MD5 di Jawa:
MD5 sudah diimplementasikan dalam java.
Jadi kita hanya perlu menggunakan kembali metode dan melakukan beberapa pengolahan pra dan pasca.
Teknik hashing MD5 selalu menghasilkan string panjang tetap terenkripsi memiliki 128 bit atau 16 byte dan sehingga Anda akan selalu mendapatkan string heksadesimal dengan panjang 16

import java.io.UnsupportedEncodingException;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import java.util.Formatter;

/**
 * @author dharmvir.singh
 * @Description: This class generated the hash code of few strings
 *
 */
public class TestMD5 {
 public static void main(String[] args) {
  String[] inputStrings = { "Open Source", "Apache project",
    "java espresso" };
  System.out.println("String\t\t\tHash Value\t\tHash val length");
  System.out.println("======\t\t\t==========\t\t===============");
  for (int i = 0; i < inputStrings.length; i++) {
   System.out.println(inputStrings[i] + "\t\t"
     + getMD5HashVal(inputStrings[i]));
  }
 }

 public static String getMD5HashVal(String strToBeEncrypted) {
  String encryptedString = null;
  byte[] bytesToBeEncrypted;
  try {
   // convert string to bytes using a encoding scheme
   bytesToBeEncrypted = strToBeEncrypted.getBytes("UTF-8");
   MessageDigest md = MessageDigest.getInstance("MD5");
   byte[] theDigest = md.digest(bytesToBeEncrypted);
                        // convert each byte to a hexadecimal digit
   Formatter formatter = new Formatter();
   for (byte b : theDigest) {
    formatter.format("%02x", b);
   }
   encryptedString = formatter.toString().toLowerCase();

  } catch (UnsupportedEncodingException e) {
   e.printStackTrace();
  } catch (NoSuchAlgorithmException e) {
   e.printStackTrace();
  }
  return encryptedString;
 }
}









.

Tidak ada komentar:

Posting Komentar