|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
上一個類別 下一個類別 | 框架 無框架 | |||||||||
摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 |
java.lang.Object javax.crypto.KeyGenerator
public class KeyGenerator
此類別提供(對稱)密鑰產生器的功能。
密鑰產生器是使用此類別的某個 getInstance
類別方法建構的。
KeyGenerator 物件可重複使用,也就是說,在產生密鑰後,可以重複使用同一個 KeyGenerator 物件來產生更多的密鑰。
產生密鑰的方式有兩種:與演算法無關的方式和特定於演算法的方式。兩者之間的唯一不同是物件的初始化:
所有密鑰產生器都具有密鑰大小 和隨機源 的概念。此 KeyGenerator 類別中有一個 init
方法,它帶有這兩個通用共享型別的參數。還有一個只帶有 keysize
參數的 init 方法,它使用具有最高優先級的已安裝提供者的 SecureRandom 實作作為隨機源(如果已安裝的提供者都不提供 SecureRandom 實作,則使用系統提供的隨機源)。此 KeyGenerator 類別還提供一個只帶隨機源參數的 inti 方法。
因為調用上述與演算法無關的 init
方法時未指定其他參數,所以由提供者決定如何處理要與每個密鑰關聯的特定於演算法的參數(如果有)。
在已經存在特定於演算法的參數集的情況下,有兩個帶 AlgorithmParameterSpec
參數的 init
方法。其中一個方法還有一個 SecureRandom
參數,而另一個方法將具有高優先級的已安裝提供者的 SecureRandom 實作作為隨機源(如果安裝的提供者都不提供 SecureRandom 實作,則使用系統提供的隨機源)。
如果客戶端沒有顯式地初始化 KeyGenerator(通過調用 init
方法),那麼每個提供者都必須提供(並記錄)預設初始化。
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 |
建構子詳細資訊 |
---|
protected KeyGenerator(KeyGeneratorSpi keyGenSpi, Provider provider, String algorithm)
keyGenSpi
- 委託provider
- 提供者algorithm
- 演算法方法詳細資訊 |
---|
public final String getAlgorithm()
KeyGenerator
物件的演算法名稱。
此名稱與創建此 KeyGenerator
物件的 getInstance
調用之一中指定的名稱相同。
KeyGenerator
物件的演算法名稱。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
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
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
public final Provider getProvider()
KeyGenerator
物件的提供者。
KeyGenerator
物件的提供者public final void init(SecureRandom random)
random
- 此產生器的隨機源public final void init(AlgorithmParameterSpec params) throws InvalidAlgorithmParameterException
如果此密鑰產生器需要隨機位元組,則它將使用具有最高優先級的已安裝提供者的
實作作為隨機源來獲取這些位元組。(如果已安裝的提供者都不提供 SecureRandom 實作,則將使用系統提供的隨機源。)
SecureRandom
params
- 密鑰產生參數
InvalidAlgorithmParameterException
- 如果給定演算法不適合此密鑰產生器public final void init(AlgorithmParameterSpec params, SecureRandom random) throws InvalidAlgorithmParameterException
params
- 密鑰產生參數random
- 此密鑰產生器的隨機源
InvalidAlgorithmParameterException
- 如果 params
不適合此密鑰產生器public final void init(int keysize)
如果此密鑰產生器需要隨機位元組,則它將使用具有最高優先級的已安裝提供者的
實作作為隨機源來獲取這些位元組。(如果已安裝的提供者都不提供 SecureRandom 實作,則將使用系統提供的隨機源。)
SecureRandom
keysize
- 密鑰大小。這是特定於演算法的一種規格,是以位數為單位指定的。
InvalidParameterException
- 如果密鑰大小錯誤或不受支持。public final void init(int keysize, SecureRandom random)
keysize
- 密鑰大小。這是特定於演算法的一種規格,是以位數為單位指定的。random
- 此密鑰產生器的隨機源
InvalidParameterException
- 如果密鑰大小錯誤或不受支持。public final SecretKey generateKey()
|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
上一個類別 下一個類別 | 框架 無框架 | |||||||||
摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 |
版權所有 2008 Sun Microsystems, Inc. 保留所有權利。請遵守GNU General Public License, version 2 only。