Учебники

Криптография Java — KeyPairGenerator

Java предоставляет класс KeyPairGenerator . Этот класс используется для генерации пар открытых и закрытых ключей. Чтобы сгенерировать ключи с помощью класса KeyPairGenerator , выполните следующие действия.

Шаг 1. Создайте объект KeyPairGenerator.

Класс KeyPairGenerator предоставляет метод getInstance (), который принимает переменную String, представляющую требуемый алгоритм генерации ключей, и возвращает объект KeyPairGenerator, который генерирует ключи.

Создайте объект KeyPairGenerator, используя метод getInstance (), как показано ниже.

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

Шаг 2. Инициализация объекта KeyPairGenerator.

Класс KeyPairGenerator предоставляет метод с именем initialize (), который используется для инициализации генератора пар ключей. Этот метод принимает целочисленное значение, представляющее размер ключа.

Инициализируйте объект KeyPairGenerator, созданный на предыдущем шаге, используя этот метод, как показано ниже.

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

Шаг 3: Сгенерируйте KeyPairGenerator

Вы можете сгенерировать KeyPair, используя метод generateKeyPair () класса KeyPairGenerator . Сгенерируйте пару ключей, используя этот метод, как показано ниже.

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

Шаг 4: Получить закрытый ключ / открытый ключ

Вы можете получить закрытый ключ от сгенерированного объекта KeyPair, используя метод getPrivate (), как показано ниже.

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

Вы можете получить открытый ключ из сгенерированного объекта KeyPair, используя метод getPublic (), как показано ниже.

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

пример

В следующем примере демонстрируется генерация секретного ключа с использованием класса KeyPairGenerator пакета javax.crypto .

Live Demo

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

Выход

Вышеуказанная программа генерирует следующий вывод —