Algoritme Enkripsi yang Berbeda

Pada dasarnya ada 2 jenis enkripsi yang berbeda – Asymmetric dan Symmatic Encryption. Kedua enkripsi ini didukung oleh Java.

Algoritma enkripsi yang berbeda yang mendukung java adalah:

1. DES – dengan ukuran Key 56-bit, DES dianggap sebagai algoritma enkripsi rendah.

2. Triple DES – itu melibatkan ukuran kunci 112/168, tetapi memberikan keamanan setara 80/112, yang membuatnya menjadi lebih lambat juga.

3. AES – itu cadangan ukuran kunci 128-bit, 198-Bit dan 256-bit yang dianggap sebagai algoritma yang lebih cepat. Meskipun itu lebih cepat, kecepatannya tergantung pada Ukuran Kunci.

4. Blowfish – dengan ukuran kunci 128-bit hingga 448-bit, dianggap sebagai algoritma yang lebih baik dan lebih cepat. Blowfish sekarang digantikan oleh Twofish.

5. RC4 – Ukuran kunci dari 40-bit ke 1024-bit, RC4 adalah algoritma enkripsi yang didukung java tercepat.

Sekarang ketika datang untuk memilih antara teknik-teknik enkripsi yang berbeda ini, DES dan Triple DES sudah ketinggalan zaman.

Algoritma terbaik adalah yang dikirimkan dengan Java.

DES dan 3DES telah kedaluwarsa dan diketahui retak tanpa kunci, jadi Anda harus melewatinya.

AES adalah standar industri sekarang karena memungkinkan enkripsi 128 bit. Berikut ini contoh Enkripsi AES di java

Selain itu jika Anda mencoba mengenkripsi kata sandi, Anda harus menggunakan fungsi hash untuk membuat hash string kata sandi terenkripsi. MD5 hash digunakan sebagian besar untuk ini. Ketika membandingkan Anda dapat mengenkripsi kata sandi masukan, hash dengan MD5 dan bandingkan dengan nilai yang disimpan dalam database di bawah kata sandi.

Namun MD5 hash mudah retak, tetapi menyediakan garis pertahanan pertama terhadap pembacaan sandi.

Berikut ini adalah contoh yang menggunakan enkripsi AES.

String mengenkripsi statis publik (String key, String initVector, nilai String) {
coba {
IvParameterSpec iv = new IvParameterSpec (initVector.getBytes ("UTF-8"));
SecretKeySpec skeySpec = new SecretKeySpec (key.getBytes ("UTF-8"), "AES");

Cipher cipher = Cipher.getInstance ("AES / CBC / PKCS5PADDING");
cipher.init (Cipher.ENCRYPT_MODE, skeySpec, iv);

byte [] encrypted = cipher.doFinal (value.getBytes ());
System.out.println ("string terenkripsi:"
+ Base64.encodeBase64String (terenkripsi));

return Base64.encodeBase64String (terenkripsi);
} catch (Exception ex) {
ex.printStackTrace ();
}

kembali nol;
}

Algoritma enkripsi yang paling aman – dan yang paling mustahil untuk dibangun dalam kehidupan nyata – adalah XOR pad yang tak terbatas, satu kali dikatupkan ke plaintext.

Jika Anda berbicara tentang kriptografi kunci Publik, yang merupakan jenis enkripsi yang Anda khawatirkan di sebagian besar aplikasi Internet, dalam satu jenis yang telah divalidasi dan tidak sengaja dilemahkan, panjang kunci lebih penting daripada kekuatan atau kelemahan dari algoritma.

Beberapa algoritma memungkinkan hingga kunci ukuran tertentu, jadi Anda ingin yang memiliki panjang kunci yang tidak terbatas. Melakukan pencarian cepat, saya tidak dapat menemukan yang langsung mendukungnya.

Karena ini adalah satu-satunya hash yang mendukung ukuran kunci tidak terbatas, mungkin akan ada beberapa berdasarkan SHA-3 setelah sepenuhnya diterapkan.