Mật mã Java - KeyPairGenerator

Java cung cấp KeyPairGeneratorlớp học. Lớp này được sử dụng để tạo các cặp khóa công khai và khóa riêng. Để tạo khóa bằng cách sử dụngKeyPairGenerator lớp, hãy làm theo các bước dưới đây.

Bước 1: Tạo đối tượng KeyPairGenerator

Các KeyPairGenerator lớp học cung cấp getInstance() phương thức chấp nhận một biến Chuỗi đại diện cho thuật toán tạo khóa bắt buộc và trả về một đối tượng KeyPairGenerator tạo khóa.

Tạo nên KeyPairGenerator đối tượng sử dụng getInstance() như hình dưới đây.

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

Bước 2: Khởi tạo đối tượng KeyPairGenerator

Các KeyPairGenerator lớp cung cấp một phương thức có tên initialize()phương pháp này được sử dụng để khởi tạo bộ tạo cặp khóa. Phương thức này chấp nhận một giá trị số nguyên đại diện cho kích thước khóa.

Khởi tạo đối tượng KeyPairGenerator đã tạo ở bước trước bằng phương pháp này như hình dưới đây.

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

Bước 3: Tạo KeyPairGenerator

Bạn có thể tạo KeyPair sử dụng generateKeyPair() phương pháp của KeyPairGeneratorlớp học. Tạo cặp khóa bằng phương pháp này như hình dưới đây.

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

Bước 4: Nhận khóa cá nhân / khóa công khai

Bạn có thể lấy khóa cá nhân từ đối tượng KeyPair đã tạo bằng cách sử dụng getPrivate() như hình dưới đây.

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

Bạn có thể lấy khóa công khai từ đối tượng KeyPair đã tạo bằng cách sử dụng getPublic() như hình dưới đây.

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

Thí dụ

Ví dụ sau minh họa cách tạo khóa của khóa bí mật bằng cách sử dụng lớp KeyPairGenerator của javax.crypto gói hàng.

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

Đầu ra

Chương trình trên tạo ra kết quả sau:

Keys generated