Crittografia Java - KeyGenerator

Java fornisce KeyGenerator classe questa classe viene utilizzata per generare chiavi segrete e gli oggetti di questa classe sono riutilizzabili.

Per generare chiavi utilizzando la classe KeyGenerator seguire i passaggi indicati di seguito.

Passaggio 1: crea un oggetto KeyGenerator

Il KeyGenerator classe fornisce getInstance() che accetta una variabile String che rappresenta l'algoritmo di generazione della chiave richiesto e restituisce un oggetto KeyGenerator che genera chiavi segrete.

Creare KeyGenerator oggetto utilizzando il getInstance() metodo come mostrato di seguito.

//Creating a KeyGenerator object
KeyGenerator keyGen = KeyGenerator.getInstance("DES");

Passaggio 2: crea l'oggetto SecureRandom

Il SecureRandom classe di java.SecurityIl pacchetto fornisce un potente generatore di numeri casuali che viene utilizzato per generare numeri casuali in Java. Istanziare questa classe come mostrato di seguito.

//Creating a SecureRandom object
SecureRandom secRandom = new SecureRandom();

Passaggio 3: inizializza KeyGenerator

Il KeyGenerator class fornisce un metodo denominato init() questo metodo accetta l'oggetto SecureRandom e inizializza il file current KeyGenerator.

Inizializza l'oggetto KeyGenerator creato nel passaggio precedente utilizzando il init() metodo.

//Initializing the KeyGenerator
keyGen.init(secRandom);

Esempio

L'esempio seguente mostra la generazione della chiave della chiave segreta utilizzando la classe KeyGenerator di javax.crypto pacchetto.

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);      
   }
}

Produzione

Il programma di cui sopra genera il seguente output:

[email protected]
[[email protected]