Kryptografia Java - KeyPairGenerator

Java udostępnia KeyPairGeneratorklasa. Ta klasa służy do generowania par kluczy publicznych i prywatnych. Aby wygenerować klucze za pomocąKeyPairGenerator klasy, wykonaj czynności podane poniżej.

Krok 1: Utwórz obiekt KeyPairGenerator

Plik KeyPairGenerator klasa zapewnia getInstance() , która akceptuje zmienną String reprezentującą wymagany algorytm generowania kluczy i zwraca obiekt KeyPairGenerator, który generuje klucze.

Stwórz KeyPairGenerator obiekt za pomocą getInstance() metoda, jak pokazano poniżej.

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

Krok 2: Zainicjuj obiekt KeyPairGenerator

Plik KeyPairGenerator class udostępnia metodę o nazwie initialize()ta metoda służy do inicjalizacji generatora par kluczy. Ta metoda akceptuje wartość całkowitą reprezentującą rozmiar klucza.

Zainicjuj obiekt KeyPairGenerator utworzony w poprzednim kroku przy użyciu tej metody, jak pokazano poniżej.

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

Krok 3: Wygeneruj KeyPairGenerator

Możesz wygenerować plik KeyPair używając generateKeyPair() metoda KeyPairGeneratorklasa. Wygeneruj parę kluczy za pomocą tej metody, jak pokazano poniżej.

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

Krok 4: Uzyskaj klucz prywatny / klucz publiczny

Możesz uzyskać klucz prywatny z wygenerowanego obiektu KeyPair przy użyciu getPrivate() metoda, jak pokazano poniżej.

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

Możesz uzyskać klucz publiczny z wygenerowanego obiektu KeyPair przy użyciu getPublic() metoda, jak pokazano poniżej.

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

Przykład

Poniższy przykład ilustruje generowanie klucza tajnego klucza przy użyciu klasy KeyPairGenerator klasy javax.crypto pakiet.

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

Wynik

Powyższy program generuje następujące dane wyjściowe -

Keys generated