JavaTM 2 Platform
Standard Ed. 6

javax.crypto
類別 KeyGenerator

java.lang.Object
  繼承者 javax.crypto.KeyGenerator

public class KeyGenerator
extends Object

此類別提供(對稱)密鑰產生器的功能。

密鑰產生器是使用此類別的某個 getInstance 類別方法建構的。

KeyGenerator 物件可重複使用,也就是說,在產生密鑰後,可以重複使用同一個 KeyGenerator 物件來產生更多的密鑰。

產生密鑰的方式有兩種:與演算法無關的方式和特定於演算法的方式。兩者之間的唯一不同是物件的初始化:

如果客戶端沒有顯式地初始化 KeyGenerator(通過調用 init 方法),那麼每個提供者都必須提供(並記錄)預設初始化。

從以下版本開始:
1.4
另請參見:
SecretKey

建構子摘要
protected KeyGenerator(KeyGeneratorSpi keyGenSpi, Provider provider, String algorithm)
          創建一個 KeyGenerator 物件。
 
方法摘要
 SecretKey generateKey()
          產生一個密鑰。
 String getAlgorithm()
          返回此 KeyGenerator 物件的演算法名稱。
static KeyGenerator getInstance(String algorithm)
          返回產生指定演算法的秘密密鑰的 KeyGenerator 物件。
static KeyGenerator getInstance(String algorithm, Provider provider)
          返回產生指定演算法的秘密密鑰的 KeyGenerator 物件。
static KeyGenerator getInstance(String algorithm, String provider)
          返回產生指定演算法的秘密密鑰的 KeyGenerator 物件。
 Provider getProvider()
          返回此 KeyGenerator 物件的提供者。
 void init(AlgorithmParameterSpec params)
          用指定參數集初始化此密鑰產生器。
 void init(AlgorithmParameterSpec params, SecureRandom random)
          用指定參數集和使用者提供的隨機源初始化此密鑰產生器。
 void init(int keysize)
          初始化此密鑰產生器,使其具有確定的密鑰大小。
 void init(int keysize, SecureRandom random)
          使用使用者提供的隨機源初始化此密鑰產生器,使其具有確定的密鑰大小。
 void init(SecureRandom random)
          初始化此密鑰產生器。
 
從類別 java.lang.Object 繼承的方法
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

建構子詳細資訊

KeyGenerator

protected KeyGenerator(KeyGeneratorSpi keyGenSpi,
                       Provider provider,
                       String algorithm)
創建一個 KeyGenerator 物件。

參數:
keyGenSpi - 委託
provider - 提供者
algorithm - 演算法
方法詳細資訊

getAlgorithm

public final String getAlgorithm()
返回此 KeyGenerator 物件的演算法名稱。

此名稱與創建此 KeyGenerator 物件的 getInstance 調用之一中指定的名稱相同。

返回:
KeyGenerator 物件的演算法名稱。

getInstance

public static final KeyGenerator getInstance(String algorithm)
                                      throws NoSuchAlgorithmException
返回產生指定演算法的秘密密鑰的 KeyGenerator 物件。

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

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

參數:
algorithm - 所請求密鑰演算法的標準名稱。有關標準演算法名稱的資訊,請參閱 Java Cryptography Architecture Reference Guide 中的附錄 A。
返回:
新的 KeyGenerator 物件。
拋出:
NullPointerException - 如果指定演算法為 null。
NoSuchAlgorithmException - 如果沒有 Provider 支持指定演算法的 KeyGeneratorSpi 實作。
另請參見:
Provider

getInstance

public static final KeyGenerator getInstance(String algorithm,
                                             String provider)
                                      throws NoSuchAlgorithmException,
                                             NoSuchProviderException
返回產生指定演算法的秘密密鑰的 KeyGenerator 物件。

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

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

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

getInstance

public static final KeyGenerator getInstance(String algorithm,
                                             Provider provider)
                                      throws NoSuchAlgorithmException
返回產生指定演算法的秘密密鑰的 KeyGenerator 物件。

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

參數:
algorithm - 所請求密鑰演算法的標準名稱。有關標準演算法名稱的資訊,請參閱 Java Cryptography Architecture Reference Guide 中的附錄 A。
provider - 提供者。
返回:
新的 KeyGenerator 物件。
拋出:
NullPointerException - 如果指定演算法為 null。
NoSuchAlgorithmException - 如果不能從指定 Provider 物件獲得指定演算法的 KeyGeneratorSpi 實作。
IllegalArgumentException - 如果 provider 為 null。
另請參見:
Provider

getProvider

public final Provider getProvider()
返回此 KeyGenerator 物件的提供者。

返回:
KeyGenerator 物件的提供者

init

public final void init(SecureRandom random)
初始化此密鑰產生器。

參數:
random - 此產生器的隨機源

init

public final void init(AlgorithmParameterSpec params)
                throws InvalidAlgorithmParameterException
用指定參數集初始化此密鑰產生器。

如果此密鑰產生器需要隨機位元組,則它將使用具有最高優先級的已安裝提供者的 SecureRandom 實作作為隨機源來獲取這些位元組。(如果已安裝的提供者都不提供 SecureRandom 實作,則將使用系統提供的隨機源。)

參數:
params - 密鑰產生參數
拋出:
InvalidAlgorithmParameterException - 如果給定演算法不適合此密鑰產生器

init

public final void init(AlgorithmParameterSpec params,
                       SecureRandom random)
                throws InvalidAlgorithmParameterException
用指定參數集和使用者提供的隨機源初始化此密鑰產生器。

參數:
params - 密鑰產生參數
random - 此密鑰產生器的隨機源
拋出:
InvalidAlgorithmParameterException - 如果 params 不適合此密鑰產生器

init

public final void init(int keysize)
初始化此密鑰產生器,使其具有確定的密鑰大小。

如果此密鑰產生器需要隨機位元組,則它將使用具有最高優先級的已安裝提供者的 SecureRandom 實作作為隨機源來獲取這些位元組。(如果已安裝的提供者都不提供 SecureRandom 實作,則將使用系統提供的隨機源。)

參數:
keysize - 密鑰大小。這是特定於演算法的一種規格,是以位數為單位指定的。
拋出:
InvalidParameterException - 如果密鑰大小錯誤或不受支持。

init

public final void init(int keysize,
                       SecureRandom random)
使用使用者提供的隨機源初始化此密鑰產生器,使其具有確定的密鑰大小。

參數:
keysize - 密鑰大小。這是特定於演算法的一種規格,是以位數為單位指定的。
random - 此密鑰產生器的隨機源
拋出:
InvalidParameterException - 如果密鑰大小錯誤或不受支持。

generateKey

public final SecretKey generateKey()
產生一個密鑰。

返回:
新的密鑰

JavaTM 2 Platform
Standard Ed. 6

提交錯誤或意見

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