Criptografía Java - KeyPairGenerator

Java proporciona la KeyPairGeneratorclase. Esta clase se utiliza para generar pares de claves públicas y privadas. Para generar claves usando elKeyPairGenerator clase, siga los pasos que se indican a continuación.

Paso 1: crear un objeto KeyPairGenerator

los KeyPairGenerator la clase proporciona getInstance() método que acepta una variable String que representa el algoritmo de generación de claves requerido y devuelve un objeto KeyPairGenerator que genera claves.

Crear KeyPairGenerator objeto usando el getInstance() método como se muestra a continuación.

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

Paso 2: inicializar el objeto KeyPairGenerator

los KeyPairGenerator la clase proporciona un método llamado initialize()este método se utiliza para inicializar el generador de pares de claves. Este método acepta un valor entero que representa el tamaño de la clave.

Inicialice el objeto KeyPairGenerator creado en el paso anterior usando este método como se muestra a continuación.

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

Paso 3: Genere el KeyPairGenerator

Puede generar el KeyPair utilizando el generateKeyPair() método del KeyPairGeneratorclase. Genere el par de claves utilizando este método como se muestra a continuación.

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

Paso 4: obtenga la clave privada / clave pública

Puede obtener la clave privada del objeto KeyPair generado utilizando el getPrivate() método como se muestra a continuación.

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

Puede obtener la clave pública del objeto KeyPair generado utilizando el getPublic() método como se muestra a continuación.

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

Ejemplo

El siguiente ejemplo demuestra la generación de claves de la clave secreta utilizando la clase KeyPairGenerator del javax.crypto paquete.

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

Salida

El programa anterior genera la siguiente salida:

Keys generated