Java Şifreleme - KeyGenerator
Java sağlar KeyGenerator sınıf, bu sınıf gizli anahtarlar oluşturmak için kullanılır ve bu sınıfın nesneleri yeniden kullanılabilir.
KeyGenerator sınıfını kullanarak anahtarlar oluşturmak için aşağıda verilen adımları izleyin.
Adım 1: Bir KeyGenerator nesnesi oluşturun
KeyGenerator sınıf sağlar getInstance() gerekli anahtar oluşturma algoritmasını temsil eden bir String değişkenini kabul eden ve gizli anahtarlar oluşturan bir KeyGenerator nesnesi döndüren yöntem.
Oluşturmak KeyGenerator kullanarak nesne getInstance() yöntemi aşağıda gösterildiği gibi.
//Creating a KeyGenerator object
KeyGenerator keyGen = KeyGenerator.getInstance("DES");
Adım 2: SecureRandom nesnesi oluşturun
SecureRandom sınıfı java.Securitypaketi, Java'da rasgele sayılar üretmek için kullanılan güçlü bir rasgele sayı üreteci sağlar. Bu sınıfı aşağıda gösterildiği gibi örnekleyin.
//Creating a SecureRandom object
SecureRandom secRandom = new SecureRandom();
3. Adım: KeyGenerator'ü başlatın
KeyGenerator sınıf adlı bir yöntem sağlar init() bu yöntem SecureRandom nesnesini kabul eder ve mevcut KeyGenerator.
Önceki adımda oluşturulan KeyGenerator nesnesini init() yöntem.
//Initializing the KeyGenerator
keyGen.init(secRandom);
Misal
Aşağıdaki örnek, anahtarın KeyGenerator sınıfını kullanarak gizli anahtarın anahtar üretimini gösterir. javax.crypto paketi.
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);
}
}
Çıktı
Yukarıdaki program aşağıdaki çıktıyı üretir -
com.sun.crypto.provider.DESKey@18629
[B@2ac1fdc4