|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
上一個類別 下一個類別 | 框架 無框架 | |||||||||
摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 |
java.lang.Object java.security.KeyFactory
public class KeyFactory
密鑰處理器用於將密鑰(Key
型別的不透明加密密鑰)轉換成密鑰規範(底層密鑰材料的透明表示),反之亦然。
密鑰處理器是雙向的。也就是說,它們允許根據給定的密鑰規範(密鑰材料)建構不透明的密鑰物件,也允許獲取以恰當格式表示的密鑰物件的底層密鑰材料。
對於同一個密鑰可以存在多個相容的密鑰規範。例如,可以使用 DSAPublicKeySpec
或 X509EncodedKeySpec
指定 DSA 公鑰。密鑰處理器可用於相容密鑰規範之間的轉換。
以下是一個如何使用密鑰處理器根據其編碼實例化 DSA 公鑰的範例。假定 Alice 收到了 Bob 的數位簽章。Bob 也向她發送其公鑰(以編碼的格式)來驗證他的簽章。然後 Alice 執行以下操作:
X509EncodedKeySpec bobPubKeySpec = new X509EncodedKeySpec(bobEncodedPubKey); KeyFactory keyFactory = KeyFactory.getInstance("DSA"); PublicKey bobPubKey = keyFactory.generatePublic(bobPubKeySpec); Signature sig = Signature.getInstance("DSA"); sig.initVerify(bobPubKey); sig.update(data); sig.verify(signature);
Key
,
PublicKey
,
PrivateKey
,
KeySpec
,
DSAPublicKeySpec
,
X509EncodedKeySpec
建構子摘要 | |
---|---|
protected |
KeyFactory(KeyFactorySpi keyFacSpi,
Provider provider,
String algorithm)
創建一個 KeyFactory 物件。 |
方法摘要 | ||
---|---|---|
PrivateKey |
generatePrivate(KeySpec keySpec)
根據提供的密鑰規範(密鑰材料)產生私鑰物件。 |
|
PublicKey |
generatePublic(KeySpec keySpec)
根據提供的密鑰規範(密鑰材料)產生公鑰物件。 |
|
String |
getAlgorithm()
獲取與此 KeyFactory 關聯的演算法的名稱。 |
|
static KeyFactory |
getInstance(String algorithm)
返回轉換指定演算法的 public/private 關鍵字的 KeyFactory 物件。 |
|
static KeyFactory |
getInstance(String algorithm,
Provider provider)
返回轉換指定演算法的 public/private 關鍵字的 KeyFactory 物件。 |
|
static KeyFactory |
getInstance(String algorithm,
String provider)
返回轉換指定演算法的 public/private 關鍵字的 KeyFactory 物件。 |
|
|
getKeySpec(Key key,
Class<T> keySpec)
返回給定密鑰物件的規範(密鑰材料)。 |
|
Provider |
getProvider()
返回此密鑰處理器物件的提供者。 |
|
Key |
translateKey(Key key)
將提供者可能未知或不受信任的密鑰物件轉換成此密鑰處理器對應的密鑰物件。 |
從類別 java.lang.Object 繼承的方法 |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
建構子詳細資訊 |
---|
protected KeyFactory(KeyFactorySpi keyFacSpi, Provider provider, String algorithm)
keyFacSpi
- 代理provider
- 提供者algorithm
- 與此 KeyFactory 關聯的演算法名稱方法詳細資訊 |
---|
public static KeyFactory getInstance(String algorithm) throws NoSuchAlgorithmException
此方法從首選 Provider 開始遍歷已註冊安全提供者列表。返回一個封裝 KeyFactorySpi 實作的新 KeyFactory 物件,該實作取自第一個支持指定演算法的 Provider。
注意,可以通過 Security.getProviders()
方法獲取已註冊提供者列表。
algorithm
- 請求密鑰演算法的名稱。有關標準演算法名稱的資訊,請參閱
Java Cryptography Architecture API Specification & Reference 中的附錄 A。
NoSuchAlgorithmException
- 如果沒有 Provider 支持指定演算法的 KeyFactorySpi 實作。Provider
public static KeyFactory getInstance(String algorithm, String provider) throws NoSuchAlgorithmException, NoSuchProviderException
返回一個封裝 KeyFactorySpi 實作的新 KeyFactory 物件,該實作取自指定提供者。指定提供者必須在安全提供者列表中註冊。
注意,可以通過 Security.getProviders()
方法獲取已註冊提供者列表。
algorithm
- 請求密鑰演算法的名稱。有關標準演算法名稱的資訊,請參閱
Java Cryptography Architecture API Specification & Reference 中的附錄 A。provider
- 提供者的名稱。
NoSuchAlgorithmException
- 如果不能從指定提供者獲得指定演算法的 KeyFactorySpi 實作。
NoSuchProviderException
- 如果指定提供者未在安全提供者列表中註冊。
IllegalArgumentException
- 如果提供者的名稱為 null 或空。Provider
public static KeyFactory getInstance(String algorithm, Provider provider) throws NoSuchAlgorithmException
返回一個封裝 KeyFactorySpi 實作的新 KeyFactory 物件,該實作取自指定 Provider 物件。注意,指定 Provider 物件無需在提供者列表中註冊。
algorithm
- 請求密鑰演算法的名稱。有關標準演算法名稱的資訊,請參閱
Java Cryptography Architecture API Specification & Reference 中的附錄 A。provider
- 提供者。
NoSuchAlgorithmException
- 如果不能從指定 Provider 物件獲得指定演算法的 KeyFactorySpi 實作。
IllegalArgumentException
- 如果指定提供者為 null。Provider
public final Provider getProvider()
public final String getAlgorithm()
public final PublicKey generatePublic(KeySpec keySpec) throws InvalidKeySpecException
keySpec
- 公鑰的規範(密鑰材料)。
InvalidKeySpecException
- 如果給定的密鑰規範不適合此密鑰處理器產生公鑰。public final PrivateKey generatePrivate(KeySpec keySpec) throws InvalidKeySpecException
keySpec
- 私鑰的規範(密鑰材料)。
InvalidKeySpecException
- 如果給定的密鑰規範不適合此密鑰處理器產生私鑰。public final <T extends KeySpec> T getKeySpec(Key key, Class<T> keySpec) throws InvalidKeySpecException
keySpec
標識應接受返回密鑰材料的規範類別。例如,它可能是 DSAPublicKeySpec.class
,指示密鑰材料應該返回到 DSAPublicKeySpec
類別的一個實例中。
key
- 密鑰。keySpec
- 應接受返回密鑰材料的規範類別。
InvalidKeySpecException
- 如果請求的密鑰規範不適合給定密鑰,或無法處理給定密鑰(例如,給定密鑰具有不能識別的演算法或格式)。public final Key translateKey(Key key) throws InvalidKeyException
key
- 提供者未知或不受信任的密鑰物件。
InvalidKeyException
- 如果此密鑰處理器無法處理給定密鑰。
|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
上一個類別 下一個類別 | 框架 無框架 | |||||||||
摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 |
版權所有 2008 Sun Microsystems, Inc. 保留所有權利。請遵守GNU General Public License, version 2 only。