Dua hari yang lalu saya mendapatkan modul tugas dalam sebuah projek untuk melakukan enkripsi dan dekripsi array of byte. dan akhirnya saya menemukan library java yang memudahkan kita dalam melakukan enkripsi dan dekripsi. Yaitu,
JASYPT (Java Simplified Encryption)
Disamping fiturnya yang bagus, konfigurasinya juga sangat mudah sekali. Untuk lebih jelasnya bisa dilihat di http://www.jasypt.org/index.html
File jar yang perlu dipersiapkan adalah
- Jasypt
- Apache Jakarta Commons Lang 2.1
- Apache Jakarta Commons Codec 1.1
Berikut contoh program yang saya buat untuk String,
package encryption;
import org.jasypt.util.TextEncryptor;
public class Test {
public static void main(String[] args) {
String myText = "Dhiku lagi coba jasypt";
System.out.println(myText);
TextEncryptor textEncryptor = new TextEncryptor();
// set passwordnya
textEncryptor.setPassword("jasypt");
String encryptedText = textEncryptor.encrypt(myText);
System.out.println(encryptedText);
String plainText = textEncryptor.decrypt(encryptedText);
System.out.println(plainText);
}
}
Jika di-run hasilnya adalah,
Dhiku lagi coba jasypt
Ntd3eXmG1jyZaSHSTqIaI4MlI+y1MN1zr2aJxtzF4E4=
Dhiku lagi coba jasypt
Sedangkan untuk array of bytenya, menggunakan Password-Based Encryption (PBE) berbasiskan byte dan algoritma enkripsi yang saya pilih adalah MD5 dan DES. Berikut contoh programnya,
package encryption;
import java.util.Arrays;
import org.jasypt.encryption.pbe.StandardPBEByteEncryptor;
public class ByteEncryption {
public static void main(String[] args) {
String myText = "Dhiku lagi coba jasypt";
byte[] myByte = myText.getBytes();
StandardPBEByteEncryptor encryptor =
new StandardPBEByteEncryptor();
// set passwordnya
encryptor.setPassword("dhiku");
// set algoritmanya, optional
encryptor.setAlgorithm("PBEWithMD5AndDES");
byte[] a = encryptor.encrypt(myByte);
byte[] b = encryptor.decrypt(a);
if (Arrays.equals(myByte, b)){
System.out.println("Enkripsi Dekripsi berhasil");
}
}
}
Kalau di-run output yang dihasilkan adalah,
Enkripsi Dekripsi berhasil
Mudah sekali bukan? Selamat mencoba!