Kriptografi Java - Generator Kunci
Java menyediakan KeyGenerator kelas kelas ini digunakan untuk menghasilkan kunci rahasia dan objek kelas ini dapat digunakan kembali.
Untuk menghasilkan kunci menggunakan kelas KeyGenerator ikuti langkah-langkah yang diberikan di bawah ini.
Langkah 1: Buat objek KeyGenerator
Itu KeyGenerator kelas menyediakan getInstance() metode yang menerima variabel String yang mewakili algoritme penghasil kunci yang diperlukan dan mengembalikan objek KeyGenerator yang menghasilkan kunci rahasia.
Membuat KeyGenerator objek menggunakan getInstance() metode seperti yang ditunjukkan di bawah ini.
//Creating a KeyGenerator object
KeyGenerator keyGen = KeyGenerator.getInstance("DES");
Langkah 2: Buat objek SecureRandom
Itu SecureRandom kelas dari java.Securitypaket menyediakan generator nomor acak yang kuat yang digunakan untuk menghasilkan nomor acak di Jawa. Instantiate kelas ini seperti yang ditunjukkan di bawah ini.
//Creating a SecureRandom object
SecureRandom secRandom = new SecureRandom();
Langkah 3: Inisialisasi KeyGenerator
Itu KeyGenerator kelas menyediakan metode bernama init() metode ini menerima objek SecureRandom dan menginisialisasi arus KeyGenerator.
Inisialisasi objek KeyGenerator yang dibuat pada langkah sebelumnya menggunakan init() metode.
//Initializing the KeyGenerator
keyGen.init(secRandom);
Contoh
Contoh berikut menunjukkan pembuatan kunci dari kunci rahasia menggunakan kelas KeyGenerator dari javax.crypto paket.
import javax.crypto.Cipher;
import javax.crypto.KeyGenerator;
import java.security.Key;
import java.security.SecureRandom;
public class KeyGeneratorExample {
public static void main(String args[]) throws Exception{
//Creating a KeyGenerator object
KeyGenerator keyGen = KeyGenerator.getInstance("DES");
//Creating a SecureRandom object
SecureRandom secRandom = new SecureRandom();
//Initializing the KeyGenerator
keyGen.init(secRandom);
//Creating/Generating a key
Key key = keyGen.generateKey();
System.out.println(key);
Cipher cipher = Cipher.getInstance("DES/ECB/PKCS5Padding");
cipher.init(cipher.ENCRYPT_MODE, key);
String msg = new String("Hi how are you");
byte[] bytes = cipher.doFinal(msg.getBytes());
System.out.println(bytes);
}
}
Keluaran
Program di atas menghasilkan keluaran berikut -
com.sun.crypto.provider.DESKey@18629
[B@2ac1fdc4