キーファクトリは、Key型の不透明な暗号キーであるキーと、基本のキーデータの透明な表現であるキー仕様との間の変換を行うために使用します。 秘密キー・ファクトリの操作は、秘密(対称)キーだけに行います。 
 
キー・ファクトリは双方向性です。つまり、指定したキー仕様(キー・データ)から不透明なキー・オブジェクトを構築することも、適切な形式でキー・オブジェクトの基本のキー・データを取り出すこともできます。
 アプリケーション開発者は、プロバイダのドキュメントを参照して、generateSecretおよびgetKeySpecメソッドでサポートされているキー仕様を確認する必要があります。 たとえば、"SunJCE"プロバイダによって提供されるDESede (トリプルDES)の秘密キー・ファクトリでは、DESedeKeySpecがトリプルDESキーの透過的表現としてサポートされます。 
 
 Javaプラットフォームの実装は、すべて次の標準のSecretKeyFactoryアルゴリズムをサポートする必要があります。
 
- DESede
- 導入されたバージョン:
- 1.4
- 関連項目:
- SecretKey,- DESedeKeySpec,- PBEKeySpec
- 
コンストラクタのサマリーコンストラクタ修飾子コンストラクタ説明protectedSecretKeyFactory(SecretKeyFactorySpi keyFacSpi, Provider provider, String algorithm)SecretKeyFactoryオブジェクトを生成します。
- 
メソッドのサマリー修飾子と型メソッド説明generateSecret(KeySpec keySpec)指定されたキー仕様(キー・データ)からSecretKeyオブジェクトを生成します。このSecretKeyFactoryオブジェクトのアルゴリズム名を返します。static SecretKeyFactorygetInstance(String algorithm)指定されたアルゴリズムの秘密キーを変換するSecretKeyFactoryオブジェクトを返します。static SecretKeyFactorygetInstance(String algorithm, String provider)指定されたアルゴリズムの秘密キーを変換するSecretKeyFactoryオブジェクトを返します。static SecretKeyFactorygetInstance(String algorithm, Provider provider)指定されたアルゴリズムの秘密キーを変換するSecretKeyFactoryオブジェクトを返します。getKeySpec(SecretKey key, Class<?> keySpec)指定されたキー・オブジェクトの仕様(キー・データ)を要求された形式で返します。このSecretKeyFactoryオブジェクトのプロバイダを返します。translateKey(SecretKey key)プロバイダが未知であるか、信頼できない可能性があるキー・オブジェクトを、この秘密キー・ファクトリの対応するキー・オブジェクトに変換します。
- 
コンストラクタの詳細- 
SecretKeyFactoryprotected SecretKeyFactory(SecretKeyFactorySpi keyFacSpi, Provider provider, String algorithm)SecretKeyFactoryオブジェクトを生成します。- パラメータ:
- keyFacSpi- 委譲先
- provider- プロバイダ
- algorithm- 秘密キーアルゴリズム
 
 
- 
- 
メソッドの詳細- 
getInstancepublic static final SecretKeyFactory getInstance(String algorithm) throws NoSuchAlgorithmException指定されたアルゴリズムの秘密キーを変換するSecretKeyFactoryオブジェクトを返します。このメソッドは、最優先のProviderから順に、登録済みのセキュリティProviderのリストをトラバースします。 指定されたアルゴリズムをサポートする最初のプロバイダのSecretKeyFactorySpi実装をカプセル化する新しいSecretKeyFactoryオブジェクトが返されます。 登録済みプロバイダのリストは、 Security.getProviders()メソッド経由で取得できます。- 実装上のノート:
- JDKリファレンス実装では、jdk.security.provider.preferredSecurityプロパティを使用して、指定されたアルゴリズムの優先プロバイダの順序を決定します。 これは、Security.getProviders()によって返されるプロバイダの順序とは異なる場合があります。
- パラメータ:
- algorithm- 要求された秘密キーアルゴリズムの標準名。 標準アルゴリズム名については、「Javaセキュリティ標準アルゴリズム名指定」のSecretKeyFactoryセクションを参照してください。
- 戻り値:
- 新しいSecretKeyFactoryオブジェクト
- 例外:
- NoSuchAlgorithmException-- Providerが、指定されたアルゴリズムの- SecretKeyFactorySpi実装をサポートしていない場合
- NullPointerException-- algorithmが- nullである場合
- 関連項目:
- Provider
 
- 
getInstancepublic static final SecretKeyFactory getInstance(String algorithm, String provider) throws NoSuchAlgorithmException, NoSuchProviderException指定されたアルゴリズムの秘密キーを変換するSecretKeyFactoryオブジェクトを返します。指定されたプロバイダからのSecretKeyFactorySpi実装をカプセル化する新しいSecretKeyFactoryオブジェクトが返されます。 指定したプロバイダは、セキュリティ・プロバイダ・リストに登録する必要があります。 登録済みプロバイダのリストは、 Security.getProviders()メソッド経由で取得できます。- パラメータ:
- algorithm- 要求された秘密キーアルゴリズムの標準名。 標準アルゴリズム名については、「Javaセキュリティ標準アルゴリズム名指定」のSecretKeyFactoryセクションを参照してください。
- provider- プロバイダ名。
- 戻り値:
- 新しいSecretKeyFactoryオブジェクト
- 例外:
- IllegalArgumentException-- providerが- nullまたは空の場合
- NoSuchAlgorithmException- 指定されたアルゴリズムの- SecretKeyFactorySpi実装が、指定されたプロバイダから利用可能でない場合
- NoSuchProviderException- 指定されたプロバイダがセキュリティ・プロバイダ・リストに登録されていない場合
- NullPointerException-- algorithmが- nullである場合
- 関連項目:
- Provider
 
- 
getInstancepublic static final SecretKeyFactory getInstance(String algorithm, Provider provider) throws NoSuchAlgorithmException指定されたアルゴリズムの秘密キーを変換するSecretKeyFactoryオブジェクトを返します。指定されたProviderオブジェクトからのSecretKeyFactorySpi実装をカプセル化する新しいSecretKeyFactoryオブジェクトが返されます。 指定されたProviderオブジェクトは、プロバイダ・リストに登録する必要はありません。 - パラメータ:
- algorithm- 要求された秘密キーアルゴリズムの標準名。 標準アルゴリズム名については、「Javaセキュリティ標準アルゴリズム名指定」のSecretKeyFactoryセクションを参照してください。
- provider- プロバイダ
- 戻り値:
- 新しいSecretKeyFactoryオブジェクト
- 例外:
- IllegalArgumentException-- providerが- nullの場合
- NoSuchAlgorithmException- 指定されたアルゴリズムの- SecretKeyFactorySpi実装が、指定された- Providerオブジェクトから使用できない場合
- NullPointerException-- algorithmが- nullである場合
- 関連項目:
- Provider
 
- 
getProviderpublic final Provider getProvider()このSecretKeyFactoryオブジェクトのプロバイダを返します。- 戻り値:
- このSecretKeyFactoryオブジェクトのプロバイダ
 
- 
getAlgorithmpublic final String getAlgorithm()このSecretKeyFactoryオブジェクトのアルゴリズム名を返します。これは、この SecretKeyFactoryオブジェクトを作成したgetInstance呼出しのいずれかに指定された名前と同じです。- 戻り値:
- このSecretKeyFactoryオブジェクトのアルゴリズム名。
 
- 
generateSecretpublic final SecretKey generateSecret(KeySpec keySpec) throws InvalidKeySpecException指定されたキー仕様(キー・データ)からSecretKeyオブジェクトを生成します。- パラメータ:
- keySpec- 秘密キーの仕様(キー・データ)
- 戻り値:
- 秘密キー
- 例外:
- InvalidKeySpecException- 指定されたキー仕様がこの秘密キー・ファクトリによる秘密キーの生成に不適切な場合。
 
- 
getKeySpecpublic final KeySpec getKeySpec(SecretKey key, Class<?> keySpec) throws InvalidKeySpecException指定されたキー・オブジェクトの仕様(キー・データ)を要求された形式で返します。- パラメータ:
- key- キー
- keySpec- キー・データが返される、要求された形式
- 戻り値:
- 要求された形式での基本となるキー仕様(キー・データ)
- 例外:
- InvalidKeySpecException- 要求されたキー仕様が指定されたキーに不適切(- keyと- keySpecに関連するアルゴリズムが一致しない、あるいは- keyは暗号化ハードウェア・デバイスのキーを参照するが、- keySpecはソフトウェア・ベースのキーの仕様であるなど)な場合、あるいは指定されたキーを扱えない場合(たとえば、指定されたキーのアルゴリズムまたは形式がこの秘密キー・ファクトリでサポートされていない)。
 
- 
translateKeypublic final SecretKey translateKey(SecretKey key) throws InvalidKeyExceptionプロバイダが未知であるか、信頼できない可能性があるキー・オブジェクトを、この秘密キー・ファクトリの対応するキー・オブジェクトに変換します。- パラメータ:
- key- プロバイダが未知であるか、信頼できないキー
- 戻り値:
- 変換したキー
- 例外:
- InvalidKeyException- 指定されたキーをこの秘密キー・ファクトリで処理できない場合。
 
 
-