JavaTM 2 Platform
Standard Ed. 6

java.security
類別 KeyPairGenerator

java.lang.Object
  繼承者 java.security.KeyPairGeneratorSpi
      繼承者 java.security.KeyPairGenerator

public abstract class KeyPairGenerator
extends KeyPairGeneratorSpi

KeyPairGenerator 類別用於產生公鑰和私鑰對。密鑰對產生器是使用 getInstance 處理器方法(返回一個給定類別的實例的靜態方法)建構的。

特定演算法的密鑰對產生器可以創建能夠與此演算法一起使用的公鑰/私鑰對。它還可以將特定於演算法的參數與每個產生的密鑰關聯。

有兩種產生密鑰對的方式:與演算法無關的方式和特定於演算法的方式。兩種方式的唯一區別在於物件的初始化:

每個提供者都必須提供(並記錄)預設的初始化,以防客戶端沒有顯式初始化 KeyPairGenerator(通過調用 initialize 方法)。例如,Sun 提供者使用 1024 位的預設模大小(密鑰大小)。

注意,由於歷史原因,此類別是抽象類別,是從 KeyPairGeneratorSpi 擴展的。應用程序開發人員只需注意在此 KeyPairGenerator 類別中定義的方法;父級類別中的所有方法是供加密服務提供者使用的,這些加密服務提供者希望提供自己的密鑰對產生器實作。

另請參見:
AlgorithmParameterSpec

建構子摘要
protected KeyPairGenerator(String algorithm)
          為指定的演算法創建 KeyPairGenerator 物件。
 
方法摘要
 KeyPair generateKeyPair()
          產生一個密鑰對。
 KeyPair genKeyPair()
          產生密鑰對。
 String getAlgorithm()
          返回此密鑰對產生器演算法的標準名稱。
static KeyPairGenerator getInstance(String algorithm)
          返回產生指定演算法的 public/private 密鑰對的 KeyPairGenerator 物件。
static KeyPairGenerator getInstance(String algorithm, Provider provider)
          返回產生指定演算法的 public/private 密鑰對的 KeyPairGenerator 物件。
static KeyPairGenerator getInstance(String algorithm, String provider)
          返回產生指定演算法的 public/private 密鑰對的 KeyPairGenerator 物件。
 Provider getProvider()
          返回此密鑰對產生器物件的提供者。
 void initialize(AlgorithmParameterSpec params)
          初始化密鑰對產生器,使用指定參數集合,並使用以最高優先級安裝的提供者的 SecureRandom 的實作作為隨機源。
 void initialize(AlgorithmParameterSpec params, SecureRandom random)
          使用給定參數集合和隨機源初始化密鑰對產生器。
 void initialize(int keysize)
          初始化確定密鑰大小的密鑰對產生器,使用預設的參數集合,並使用以最高優先級安裝的提供者的 SecureRandom 實作作為隨機源。
 void initialize(int keysize, SecureRandom random)
          使用給定的隨機源(和預設的參數集合)初始化確定密鑰大小的密鑰對產生器。
 
從類別 java.lang.Object 繼承的方法
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

建構子詳細資訊

KeyPairGenerator

protected KeyPairGenerator(String algorithm)
為指定的演算法創建 KeyPairGenerator 物件。

參數:
algorithm - 演算法的標準字元串名稱。有關標準演算法名稱的資訊,請參閱 Java Cryptography Architecture API Specification & Reference 中的附錄 A。
方法詳細資訊

getAlgorithm

public String getAlgorithm()
返回此密鑰對產生器演算法的標準名稱。有關標準演算法名稱的資訊,請參閱 Java Cryptography Architecture API Specification & Reference 中的附錄 A。

返回:
演算法的標準字元串名稱。

getInstance

public static KeyPairGenerator getInstance(String algorithm)
                                    throws NoSuchAlgorithmException
返回產生指定演算法的 public/private 密鑰對的 KeyPairGenerator 物件。

此方法從首選 Provider 開始遍歷已註冊安全提供者列表。返回封裝 KeyPairGeneratorSpi 實作的新 KeyPairGenerator 物件,該實作取自第一個支持指定演算法的 Provider。

注意,可以通過 Security.getProviders() 方法獲取已註冊提供者列表。

參數:
algorithm - 演算法的標準字元串名稱。有關標準演算法名稱的資訊,請參閱 Java Cryptography Architecture API Specification & Reference 中的附錄 A。
返回:
新的 KeyPairGenerator 物件。
拋出:
NoSuchAlgorithmException - 如果沒有 Provider 支持指定演算法的 KeyPairGeneratorSpi 實作。
另請參見:
Provider

getInstance

public static KeyPairGenerator getInstance(String algorithm,
                                           String provider)
                                    throws NoSuchAlgorithmException,
                                           NoSuchProviderException
返回產生指定演算法的 public/private 密鑰對的 KeyPairGenerator 物件。

返回一個封裝 KeyPairGeneratorSpi 實作的新 KeyPairGenerator 物件,該實作取自指定提供者。指定提供者必須在安全提供者列表中註冊。

注意,可以通過 Security.getProviders() 方法獲取已註冊提供者列表。

參數:
algorithm - 演算法的標準字元串名稱。有關標準演算法名稱的資訊,請參閱 Java Cryptography Architecture API Specification & Reference 中的附錄 A。
provider - 提供者的字元串名稱。
返回:
新的 KeyPairGenerator 物件。
拋出:
NoSuchAlgorithmException - 如果指定演算法的 KeyPairGeneratorSpi 實作不能從指定提供者獲得。
NoSuchProviderException - 如果指定提供者未在安全提供者列表中註冊。
IllegalArgumentException - 如果提供者的名稱為 null 或空。
另請參見:
Provider

getInstance

public static KeyPairGenerator getInstance(String algorithm,
                                           Provider provider)
                                    throws NoSuchAlgorithmException
返回產生指定演算法的 public/private 密鑰對的 KeyPairGenerator 物件。

返回一個封裝 KeyPairGeneratorSpi 實作的新 KeyPairGenerator 物件,該實作取自指定 Provider 物件。注意,指定 Provider 物件無需在提供者列表中註冊。

參數:
algorithm - 演算法的標準字元串名稱。有關標準演算法名稱的資訊,請參閱 Java Cryptography Architecture API Specification & Reference 中的附錄 A。
provider - 提供者。
返回:
新的 KeyPairGenerator 物件。
拋出:
NoSuchAlgorithmException - 如果指定演算法的 KeyPairGeneratorSpi 實作不能從指定提供者物件獲得。
IllegalArgumentException - 如果指定提供者為 null。
從以下版本開始:
1.4
另請參見:
Provider

getProvider

public final Provider getProvider()
返回此密鑰對產生器物件的提供者。

返回:
返回此密鑰對產生器物件的提供者

initialize

public void initialize(int keysize)
初始化確定密鑰大小的密鑰對產生器,使用預設的參數集合,並使用以最高優先級安裝的提供者的 SecureRandom 實作作為隨機源。(如果任何安裝的提供者都不提供 SecureRandom 的實作,則使用系統提供的隨機源。)

參數:
keysize - 密鑰大小。它是特定於演算法的度量(如模長度),以位數為單位指定。
拋出:
InvalidParameterException - 如果 keysize 不受此 KeyPairGenerator 物件支持。

initialize

public void initialize(int keysize,
                       SecureRandom random)
使用給定的隨機源(和預設的參數集合)初始化確定密鑰大小的密鑰對產生器。

指定者:
類別 KeyPairGeneratorSpi 中的 initialize
參數:
keysize - 密鑰大小。它是特定於演算法的度量(如模長度),以位數為單位指定。
random - 隨機源。
拋出:
InvalidParameterException - 如果 keysize 不受此 KeyPairGenerator 物件支持。
從以下版本開始:
1.2

initialize

public void initialize(AlgorithmParameterSpec params)
                throws InvalidAlgorithmParameterException
初始化密鑰對產生器,使用指定參數集合,並使用以最高優先級安裝的提供者的 SecureRandom 的實作作為隨機源。(如果任何安裝的提供者都不提供 SecureRandom 的實作,則使用系統提供的隨機源。)

已將此具體方法添加到以前定義的這個抽象類別中。此方法調用 KeyPairGeneratorSpi 的 initialize 方法,為它傳遞 params 和隨機源(從以最高優先級安裝的提供者獲得;如果任何已安裝的提供者都不能提供,則由系統提供)。如果沒有被提供者覆寫,則該 initialize 方法總是拋出 UnsupportedOperationException。

參數:
params - 用於產生密鑰的參數集合。
拋出:
InvalidAlgorithmParameterException - 如果給定的參數不適合此密鑰對產生器。
從以下版本開始:
1.2

initialize

public void initialize(AlgorithmParameterSpec params,
                       SecureRandom random)
                throws InvalidAlgorithmParameterException
使用給定參數集合和隨機源初始化密鑰對產生器。

已將此具體方法添加到以前定義的這個抽象類別中。此方法調用 KeyPairGeneratorSpi 的 initialize 方法,為它傳遞 paramsrandom。如果沒有被提供者覆寫,則該 initialize 方法總是拋出 UnsupportedOperationException。

覆寫:
類別 KeyPairGeneratorSpi 中的 initialize
參數:
params - 用於產生密鑰的參數集合。
random - 隨機源。
拋出:
InvalidAlgorithmParameterException - 如果給定的參數不適合此密鑰對產生器。
從以下版本開始:
1.2

genKeyPair

public final KeyPair genKeyPair()
產生密鑰對。

如果此 KeyPairGenerator 沒有被顯式初始化,特定於提供者的預設值將用於所產生密鑰的大小和其他(特定於演算法的)值。

每次調用此方法都將產生新的密鑰對。

此方法在功能上等同於 generateKeyPair

返回:
產生的密鑰對
從以下版本開始:
1.2

generateKeyPair

public KeyPair generateKeyPair()
產生一個密鑰對。

如果此 KeyPairGenerator 沒有被顯式初始化,特定於提供者的預設值將用於所產生密鑰的大小和其他(特定於演算法的)值。

每次調用此方法都將產生新的密鑰對。

此方法在功能上等同於 generateKeyPair

指定者:
類別 KeyPairGeneratorSpi 中的 generateKeyPair
返回:
產生的密鑰對

JavaTM 2 Platform
Standard Ed. 6

提交錯誤或意見

版權所有 2008 Sun Microsystems, Inc. 保留所有權利。請遵守GNU General Public License, version 2 only