JavaTM 2 Platform
Standard Ed. 6

javax.crypto
類別 SecretKeyFactory

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

public class SecretKeyFactory
extends Object

此類別表示秘密密鑰的處理器。

密鑰處理器用來將密鑰(型別 Key 的不透明加密密鑰)轉換為密鑰規範(底層密鑰材料的透明表示形式),反之亦然。秘密密鑰處理器只對秘密(對稱)密鑰進行操作。

密鑰處理器為雙工網要,即其允許根據給定密鑰規範(密鑰材料)建構不透明密鑰物件,或以適當格式獲取密鑰物件的底層密鑰材料。

應用程序開發人員應參閱其提供者文檔,找出 generateSecretgetKeySpec 方法所支持的密鑰規範。例如,"SunJCE" 提供者提供的 DES 秘密密鑰處理器支持 DESKeySpec 作為 DES 密鑰的透明表示形式,並且該提供者的 Triple DES 密鑰的秘密密鑰處理器支持 DESedeKeySpec 作為 Triple DES 密鑰的透明表示形式。

從以下版本開始:
1.4
另請參見:
SecretKey, DESKeySpec, DESedeKeySpec, PBEKeySpec

建構子摘要
protected SecretKeyFactory(SecretKeyFactorySpi keyFacSpi, Provider provider, String algorithm)
          創建一個 SecretKeyFactory 物件。
 
方法摘要
 SecretKey generateSecret(KeySpec keySpec)
          根據提供的密鑰規範(密鑰材料)產生 SecretKey 物件。
 String getAlgorithm()
          返回此 SecretKeyFactory 物件的演算法名稱。
static SecretKeyFactory getInstance(String algorithm)
          返回轉換指定演算法的秘密密鑰的 SecretKeyFactory 物件。
static SecretKeyFactory getInstance(String algorithm, Provider provider)
          返回轉換指定演算法的秘密密鑰的 SecretKeyFactory 物件。
static SecretKeyFactory getInstance(String algorithm, String provider)
          返回轉換指定演算法的秘密密鑰的 SecretKeyFactory 物件。
 KeySpec getKeySpec(SecretKey key, Class keySpec)
          以請求的格式返回給定密鑰物件的規範(密鑰材料)。
 Provider getProvider()
          返回此 SecretKeyFactory 物件的提供者。
 SecretKey translateKey(SecretKey key)
          將一個密鑰物件(其提供者未知或可能不受信任)轉換為此秘密密鑰處理器的相應密鑰物件。
 
從類別 java.lang.Object 繼承的方法
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

建構子詳細資訊

SecretKeyFactory

protected SecretKeyFactory(SecretKeyFactorySpi keyFacSpi,
                           Provider provider,
                           String algorithm)
創建一個 SecretKeyFactory 物件。

參數:
keyFacSpi - 委託
provider - 提供者
algorithm - 秘密密鑰演算法
方法詳細資訊

getInstance

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

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

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

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

getInstance

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

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

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

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

getInstance

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

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

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

getProvider

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

返回:
SecretKeyFactory 物件的提供者

getAlgorithm

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

此名稱與在某個創建此 SecretKeyFactory 物件的 getInstance 調用中指定的名稱相同。

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

generateSecret

public final SecretKey generateSecret(KeySpec keySpec)
                               throws InvalidKeySpecException
根據提供的密鑰規範(密鑰材料)產生 SecretKey 物件。

參數:
keySpec - 秘密密鑰的規範(密鑰材料)
返回:
秘密密鑰
拋出:
InvalidKeySpecException - 如果給定密鑰規範不適合產生秘密密鑰的秘密密鑰處理器。

getKeySpec

public final KeySpec getKeySpec(SecretKey key,
                                Class keySpec)
                         throws InvalidKeySpecException
以請求的格式返回給定密鑰物件的規範(密鑰材料)。

參數:
key - 密鑰
keySpec - 所請求的格式,密鑰材料將以此格式返回
返回:
所請求格式的底層密鑰規範(密鑰材料)
拋出:
InvalidKeySpecException - 如果所請求的密鑰規範不適合給定的密鑰(例如,與 keykeySpec 關聯的演算法不比對,或者 key 在加密硬體設備上參考一個密鑰而 keySpec 是基於軟體的密鑰規範),或者無法處理給定的密鑰(例如,給定的密鑰具有此秘密密鑰處理器不支持的演算法或格式)。

translateKey

public final SecretKey translateKey(SecretKey key)
                             throws InvalidKeyException
將一個密鑰物件(其提供者未知或可能不受信任)轉換為此秘密密鑰處理器的相應密鑰物件。

參數:
key - 其提供者未知或不受信任的密鑰
返回:
已轉換的密鑰
拋出:
InvalidKeyException - 如果此秘密密鑰處理器無法處理給定的密鑰。

JavaTM 2 Platform
Standard Ed. 6

提交錯誤或意見

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