|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
上一個類別 下一個類別 | 框架 無框架 | |||||||||
摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 |
java.lang.Object java.security.KeyPairGeneratorSpi java.security.KeyPairGenerator
public abstract class KeyPairGenerator
KeyPairGenerator 類別用於產生公鑰和私鑰對。密鑰對產生器是使用 getInstance
處理器方法(返回一個給定類別的實例的靜態方法)建構的。
特定演算法的密鑰對產生器可以創建能夠與此演算法一起使用的公鑰/私鑰對。它還可以將特定於演算法的參數與每個產生的密鑰關聯。
有兩種產生密鑰對的方式:與演算法無關的方式和特定於演算法的方式。兩種方式的唯一區別在於物件的初始化:
所有的密鑰對產生器遵循密鑰大小和隨機源的概念。對於不同的演算法,密鑰大小的解釋也不相同(例如,對於 DSA 演算法,密鑰大小對應於模的長度)。此 KeyPairGenerator 類別有一個 initialize
方法,該方法帶有兩個通用的共享型別的參數。還有一個只帶有 keysize
參數的方法,它使用以最高優先級安裝的提供者的 SecureRandom
實作作為隨機源。(如果任何安裝的提供者都不提供 SecureRandom
的實作,則使用系統提供的隨機源。)
因為調用上述與演算法無關的 initialize
方法時沒有指定其他參數,所以由提供者決定如何處理與每個密鑰關聯的特定於演算法的參數(如果有)。
如果演算法為 DSA 演算法,密鑰大小(模大小)為 512、768 或 1024,那麼 Sun 提供者對 p
、q
和 g
參數使用一組預計算值。如果模大小不是上述值之一,則 Sun 提供者創建一個新的參數集合。其他提供者可能具有供更多模大小(不僅僅是上文提及的那三個)使用的預計算參數集合。其他提供者也可能沒有任何預計算參數列表,而總是創建新的參數集合。
對於特定於演算法的參數集合已存在的情況(例如,DSA 中所謂的公用參數),有兩個 initialize
方法具有 AlgorithmParameterSpec
參數。其中一個方法還有一個 SecureRandom
參數,而另一個方法使用以最高優先級安裝的提供者的 SecureRandom
實作作為隨機源。(如果任何安裝的提供者都不提供 SecureRandom
的實作,則使用系統提供的隨機源。)
每個提供者都必須提供(並記錄)預設的初始化,以防客戶端沒有顯式初始化 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 |
建構子詳細資訊 |
---|
protected KeyPairGenerator(String algorithm)
algorithm
- 演算法的標準字元串名稱。有關標準演算法名稱的資訊,請參閱 Java Cryptography Architecture API Specification & Reference 中的附錄 A。方法詳細資訊 |
---|
public String getAlgorithm()
public static KeyPairGenerator getInstance(String algorithm) throws NoSuchAlgorithmException
此方法從首選 Provider 開始遍歷已註冊安全提供者列表。返回封裝 KeyPairGeneratorSpi 實作的新 KeyPairGenerator 物件,該實作取自第一個支持指定演算法的 Provider。
注意,可以通過 Security.getProviders()
方法獲取已註冊提供者列表。
algorithm
- 演算法的標準字元串名稱。有關標準演算法名稱的資訊,請參閱
Java Cryptography Architecture API Specification & Reference 中的附錄 A。
NoSuchAlgorithmException
- 如果沒有 Provider 支持指定演算法的 KeyPairGeneratorSpi 實作。Provider
public static KeyPairGenerator getInstance(String algorithm, String provider) throws NoSuchAlgorithmException, NoSuchProviderException
返回一個封裝 KeyPairGeneratorSpi 實作的新 KeyPairGenerator 物件,該實作取自指定提供者。指定提供者必須在安全提供者列表中註冊。
注意,可以通過 Security.getProviders()
方法獲取已註冊提供者列表。
algorithm
- 演算法的標準字元串名稱。有關標準演算法名稱的資訊,請參閱
Java Cryptography Architecture API Specification & Reference 中的附錄 A。provider
- 提供者的字元串名稱。
NoSuchAlgorithmException
- 如果指定演算法的 KeyPairGeneratorSpi 實作不能從指定提供者獲得。
NoSuchProviderException
- 如果指定提供者未在安全提供者列表中註冊。
IllegalArgumentException
- 如果提供者的名稱為 null 或空。Provider
public static KeyPairGenerator getInstance(String algorithm, Provider provider) throws NoSuchAlgorithmException
返回一個封裝 KeyPairGeneratorSpi 實作的新 KeyPairGenerator 物件,該實作取自指定 Provider 物件。注意,指定 Provider 物件無需在提供者列表中註冊。
algorithm
- 演算法的標準字元串名稱。有關標準演算法名稱的資訊,請參閱
Java Cryptography Architecture API Specification & Reference 中的附錄 A。provider
- 提供者。
NoSuchAlgorithmException
- 如果指定演算法的 KeyPairGeneratorSpi 實作不能從指定提供者物件獲得。
IllegalArgumentException
- 如果指定提供者為 null。Provider
public final Provider getProvider()
public void initialize(int keysize)
SecureRandom
實作作為隨機源。(如果任何安裝的提供者都不提供 SecureRandom
的實作,則使用系統提供的隨機源。)
keysize
- 密鑰大小。它是特定於演算法的度量(如模長度),以位數為單位指定。
InvalidParameterException
- 如果 keysize
不受此 KeyPairGenerator 物件支持。public void initialize(int keysize, SecureRandom random)
KeyPairGeneratorSpi
中的 initialize
keysize
- 密鑰大小。它是特定於演算法的度量(如模長度),以位數為單位指定。random
- 隨機源。
InvalidParameterException
- 如果 keysize
不受此 KeyPairGenerator 物件支持。public void initialize(AlgorithmParameterSpec params) throws InvalidAlgorithmParameterException
SecureRandom
的實作作為隨機源。(如果任何安裝的提供者都不提供 SecureRandom
的實作,則使用系統提供的隨機源。)
已將此具體方法添加到以前定義的這個抽象類別中。此方法調用 KeyPairGeneratorSpi 的 initialize
方法,為它傳遞 params
和隨機源(從以最高優先級安裝的提供者獲得;如果任何已安裝的提供者都不能提供,則由系統提供)。如果沒有被提供者覆寫,則該 initialize
方法總是拋出 UnsupportedOperationException。
params
- 用於產生密鑰的參數集合。
InvalidAlgorithmParameterException
- 如果給定的參數不適合此密鑰對產生器。public void initialize(AlgorithmParameterSpec params, SecureRandom random) throws InvalidAlgorithmParameterException
已將此具體方法添加到以前定義的這個抽象類別中。此方法調用 KeyPairGeneratorSpi 的 initialize
方法,為它傳遞 params
和 random
。如果沒有被提供者覆寫,則該 initialize
方法總是拋出 UnsupportedOperationException。
KeyPairGeneratorSpi
中的 initialize
params
- 用於產生密鑰的參數集合。random
- 隨機源。
InvalidAlgorithmParameterException
- 如果給定的參數不適合此密鑰對產生器。public final KeyPair genKeyPair()
如果此 KeyPairGenerator 沒有被顯式初始化,特定於提供者的預設值將用於所產生密鑰的大小和其他(特定於演算法的)值。
每次調用此方法都將產生新的密鑰對。
此方法在功能上等同於 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。