Java密碼學KeyPairGenerator類

Java提供了KeyPairGenerator類。 此類用於生成公鑰和私鑰對。 要使用KeyPairGenerator類生成密鑰,請按照以下步驟操作。

第1步:創建KeyPairGenerator對象

KeyPairGenerator類提供getInstance()方法,該方法接受表示所需密鑰生成算法的String變量,並返回生成密鑰的KeyPairGenerator對象。

使用getInstance()方法創建KeyPairGenerator對象,如下所示。

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

第2步:初始化KeyPairGenerator對象

KeyPairGenerator類提供了一個名爲initialize()的方法,該方法用於初始化密鑰對生成器。 此方法接受表示密鑰大小的整數值。

使用此方法初始化在上一步中創建的KeyPairGenerator對象,如下所示。

//Creating KeyPair generator object
KeyPairGenerator keyPairGen = KeyPairGenerator.getInstance("DSA");
//Initializing the KeyPairGenerator
keyPairGen.initialize(2048);

第3步:生成KeyPairGenerator

可以使用KeyPairGenerator類的generateKeyPair()方法生成KeyPair。 使用此方法生成密鑰對,如下所示。

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

第4步:獲取私鑰/公鑰

可以使用getPrivate()方法從生成的密鑰對對象中獲取私鑰,如下所示。

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

可以使用getPublic()方法從生成的KeyPair對象獲取公鑰,如下所示。

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

示例
下面的示例演示了使用javax.crypto包的KeyPairGenerator類生成密鑰的密鑰。

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

執行上面示例代碼,得到下結果:

Keys generated