Criptografia Java - KeyPairGenerator

Java fornece o KeyPairGeneratorclasse. Esta classe é usada para gerar pares de chaves públicas e privadas. Para gerar chaves usando oKeyPairGenerator classe, siga as etapas fornecidas abaixo.

Etapa 1: Crie um objeto KeyPairGenerator

o KeyPairGenerator classe fornece getInstance() método que aceita uma variável String que representa o algoritmo de geração de chave necessário e retorna um objeto KeyPairGenerator que gera chaves.

Crio KeyPairGenerator objeto usando o getInstance() método conforme mostrado abaixo.

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

Etapa 2: inicializar o objeto KeyPairGenerator

o KeyPairGenerator classe fornece um método chamado initialize()este método é usado para inicializar o gerador de par de chaves. Este método aceita um valor inteiro que representa o tamanho da chave.

Inicialize o objeto KeyPairGenerator criado na etapa anterior usando este método conforme mostrado abaixo.

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

Etapa 3: gerar o KeyPairGenerator

Você pode gerar o KeyPair usando o generateKeyPair() método do KeyPairGeneratorclasse. Gere o par de chaves usando este método conforme mostrado abaixo.

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

Etapa 4: Obtenha a chave privada / chave pública

Você pode obter a chave privada do objeto KeyPair gerado usando o getPrivate() método conforme mostrado abaixo.

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

Você pode obter a chave pública do objeto KeyPair gerado usando o getPublic() método conforme mostrado abaixo.

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

Exemplo

O exemplo a seguir demonstra a geração da chave secreta usando a classe KeyPairGenerator do javax.crypto pacote.

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

Resultado

O programa acima gera a seguinte saída -

Keys generated