Cryptographie Java - KeyPairGenerator

Java fournit le KeyPairGeneratorclasse. Cette classe est utilisée pour générer des paires de clés publiques et privées. Pour générer des clés à l'aide deKeyPairGenerator classe, suivez les étapes ci-dessous.

Étape 1: créer un objet KeyPairGenerator

le KeyPairGenerator classe fournit getInstance() qui accepte une variable String représentant l'algorithme de génération de clé requis et renvoie un objet KeyPairGenerator qui génère des clés.

Créer KeyPairGenerator objet utilisant le getInstance() méthode comme indiqué ci-dessous.

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

Étape 2: initialiser l'objet KeyPairGenerator

le KeyPairGenerator classe fournit une méthode nommée initialize()cette méthode est utilisée pour initialiser le générateur de paires de clés. Cette méthode accepte une valeur entière représentant la taille de la clé.

Initialisez l'objet KeyPairGenerator créé à l'étape précédente à l'aide de cette méthode comme indiqué ci-dessous.

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

Étape 3: générer le KeyPairGenerator

Vous pouvez générer le KeyPair en utilisant le generateKeyPair() méthode de la KeyPairGeneratorclasse. Générez la paire de clés en utilisant cette méthode comme indiqué ci-dessous.

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

Étape 4: Obtenez la clé privée / clé publique

Vous pouvez obtenir la clé privée de l'objet KeyPair généré à l'aide du getPrivate() méthode comme indiqué ci-dessous.

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

Vous pouvez obtenir la clé publique de l'objet KeyPair généré à l'aide du getPublic() méthode comme indiqué ci-dessous.

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

Exemple

L'exemple suivant illustre la génération de clé de la clé secrète à l'aide de la classe KeyPairGenerator du javax.crypto paquet.

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

Production

Le programme ci-dessus génère la sortie suivante -

Keys generated