Crittografia Java - KeyPairGenerator

Java fornisce l'estensione KeyPairGeneratorclasse. Questa classe viene utilizzata per generare coppie di chiavi pubbliche e private. Per generare chiavi utilizzando ilKeyPairGenerator classe, seguire i passaggi indicati di seguito.

Passaggio 1: crea un oggetto KeyPairGenerator

Il KeyPairGenerator classe fornisce getInstance() che accetta una variabile String che rappresenta l'algoritmo di generazione delle chiavi richiesto e restituisce un oggetto KeyPairGenerator che genera le chiavi.

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

//Creating KeyPair generator object
KeyPairGenerator keyPairGen = KeyPairGenerator.getInstance("DSA");

Passaggio 2: inizializza l'oggetto KeyPairGenerator

Il KeyPairGenerator class fornisce un metodo denominato initialize()questo metodo viene utilizzato per inizializzare il generatore di coppie di chiavi. Questo metodo accetta un valore intero che rappresenta la dimensione della chiave.

Inizializza l'oggetto KeyPairGenerator creato nel passaggio precedente utilizzando questo metodo come mostrato di seguito.

//Initializing the KeyPairGenerator
keyPairGen.initialize(2048);

Passaggio 3: genera il KeyPairGenerator

Puoi generare il file KeyPair usando il generateKeyPair() metodo del KeyPairGeneratorclasse. Genera la coppia di chiavi utilizzando questo metodo come mostrato di seguito.

//Generate the pair of keys
KeyPair pair = keyPairGen.generateKeyPair();

Passaggio 4: ottieni la chiave privata / chiave pubblica

È possibile ottenere la chiave privata dall'oggetto KeyPair generato utilizzando il getPrivate() metodo come mostrato di seguito.

//Getting the private key from the key pair
PrivateKey privKey = pair.getPrivate();

È possibile ottenere la chiave pubblica dall'oggetto KeyPair generato utilizzando il getPublic() metodo come mostrato di seguito.

//Getting the public key from the key pair
PublicKey publicKey = pair.getPublic();

Esempio

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

import java.security.KeyPair;
import java.security.KeyPairGenerator;
import java.security.PrivateKey;
import java.security.PublicKey;

public class KeyPairGenertor {
   public static void main(String args[]) throws Exception{
      //Creating KeyPair generator object
      KeyPairGenerator keyPairGen = KeyPairGenerator.getInstance("DSA");
      
      //Initializing the KeyPairGenerator
      keyPairGen.initialize(2048);
      
      //Generating the pair of keys
      KeyPair pair = keyPairGen.generateKeyPair();
      
      //Getting the private key from the key pair
      PrivateKey privKey = pair.getPrivate();   
      
      //Getting the public key from the key pair
      PublicKey publicKey = pair.getPublic(); 
      System.out.println("Keys generated");
   }
}

Produzione

Il programma di cui sopra genera il seguente output:

Keys generated