public class SecretKeyFactory extends Object
 鍵ファクトリは、Key型の不透明な暗号鍵である鍵と、基本の鍵データの透明な表現である鍵仕様との間の変換を行うために使用します。秘密鍵ファクトリの操作は、秘密(対称)鍵だけに行います。
 
鍵ファクトリは双方向性です。つまり、指定した鍵仕様(鍵データ)から不透明な鍵オブジェクトを構築することも、適切な形式で鍵オブジェクトの基本の鍵データを取り出すこともできます。
 アプリケーション開発者は、プロバイダのドキュメントを参照して、generateSecretおよびgetKeySpecメソッドでサポートされている鍵仕様を確認する必要があります。たとえば、「SunJCE」プロバイダが提供するDES秘密鍵ファクトリはDESKeySpecをDES鍵の透明な表現としてサポートし、そのプロバイダのTriple DES鍵の秘密鍵ファクトリはDESedeKeySpecをTriple DES鍵の透明な表現としてサポートします。
 
 Javaプラットフォームの実装は、すべて次の標準のSecretKeyFactoryアルゴリズムをサポートする必要があります。
 
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)プロバイダが未知であるか、信頼できない可能性がある鍵オブジェクトを、この秘密鍵ファクトリの対応する鍵オブジェクトに変換します。 | 
protected SecretKeyFactory(SecretKeyFactorySpi keyFacSpi, Provider provider, String algorithm)
keyFacSpi - 委譲先provider - プロバイダalgorithm - 秘密鍵アルゴリズムpublic static final SecretKeyFactory getInstance(String algorithm) throws NoSuchAlgorithmException
SecretKeyFactoryオブジェクトを返します。
 このメソッドは、最優先のProviderから順に、登録済みのセキュリティProviderのリストをトラバースします。指定されたアルゴリズムをサポートする最初のプロバイダのSecretKeyFactorySpi実装をカプセル化する新しいSecretKeyFactoryオブジェクトが返されます。
 登録済みプロバイダのリストは、Security.getProviders()メソッド経由で取得できます。
algorithm - 要求された秘密鍵アルゴリズムの標準名。標準のアルゴリズム名については、Java暗号化アーキテクチャ標準アルゴリズム名のドキュメントのSecretKeyFactoryのセクションを参照。SecretKeyFactoryオブジェクト。NullPointerException - 指定されたアルゴリズムがnullである場合。NoSuchAlgorithmException - 指定したアルゴリズムのSecretKeyFactorySpi実装をサポートするプロバイダが存在しない場合。Providerpublic static final SecretKeyFactory getInstance(String algorithm, String provider) throws NoSuchAlgorithmException, NoSuchProviderException
SecretKeyFactoryオブジェクトを返します。
 指定されたプロバイダからのSecretKeyFactorySpi実装をカプセル化する新しいSecretKeyFactoryオブジェクトが返されます。指定したプロバイダは、セキュリティ・プロバイダ・リストに登録する必要があります。
 登録済みプロバイダのリストは、Security.getProviders()メソッド経由で取得できます。
algorithm - 要求された秘密鍵アルゴリズムの標準名。標準のアルゴリズム名については、Java暗号化アーキテクチャ標準アルゴリズム名のドキュメントのSecretKeyFactoryのセクションを参照。provider - プロバイダ名SecretKeyFactoryオブジェクト。NoSuchAlgorithmException - 指定されたプロバイダに指定されたアルゴリズムのSecretKeyFactorySpi実装がない場合。NullPointerException - 指定されたアルゴリズムがnullである場合。NoSuchProviderException - 指定されたプロバイダがセキュリティ・プロバイダ・リストに登録されていない場合IllegalArgumentException - providerがnullまたは空の場合Providerpublic static final SecretKeyFactory getInstance(String algorithm, Provider provider) throws NoSuchAlgorithmException
SecretKeyFactoryオブジェクトを返します。
 指定されたProviderオブジェクトからのSecretKeyFactorySpi実装をカプセル化する新しいSecretKeyFactoryオブジェクトが返されます。指定されたProviderオブジェクトは、プロバイダ・リストに登録する必要はありません。
algorithm - 要求された秘密鍵アルゴリズムの標準名。標準のアルゴリズム名については、Java暗号化アーキテクチャ標準アルゴリズム名のドキュメントのSecretKeyFactoryのセクションを参照。provider - プロバイダSecretKeyFactoryオブジェクト。NullPointerException - 指定されたアルゴリズムがnullである場合。NoSuchAlgorithmException - 指定されたProviderオブジェクトに指定されたアルゴリズムのSecretKeyFactorySpiの実装がない場合。IllegalArgumentException - providerがnullの場合Providerpublic final Provider getProvider()
SecretKeyFactoryオブジェクトのプロバイダを返します。SecretKeyFactoryオブジェクトのプロバイダpublic final String getAlgorithm()
SecretKeyFactoryオブジェクトのアルゴリズム名を返します。
 これは、このSecretKeyFactoryオブジェクトを作成したgetInstance呼出しのいずれかに指定された名前と同じです。
SecretKeyFactoryオブジェクトのアルゴリズム名。public final SecretKey generateSecret(KeySpec keySpec) throws InvalidKeySpecException
SecretKeyオブジェクトを生成します。keySpec - 秘密鍵の仕様(鍵データ)InvalidKeySpecException - 指定された鍵仕様がこの秘密鍵ファクトリによる秘密鍵の生成に不適切な場合。public final KeySpec getKeySpec(SecretKey key, Class<?> keySpec) throws InvalidKeySpecException
key - 鍵keySpec - 鍵データが返される、要求された形式InvalidKeySpecException - 要求された鍵仕様が指定された鍵に不適切(keyとkeySpecに関連するアルゴリズムが一致しない、あるいはkeyは暗号化ハードウェア・デバイスの鍵を参照するが、keySpecはソフトウェア・ベースの鍵の仕様であるなど)な場合、あるいは指定された鍵を扱えない場合(たとえば、指定された鍵のアルゴリズムまたは形式がこの秘密鍵ファクトリでサポートされていない)。public final SecretKey translateKey(SecretKey key) throws InvalidKeyException
key - プロバイダが未知であるか、信頼できない鍵InvalidKeyException - 指定された鍵をこの秘密鍵ファクトリで処理できない場合。 バグまたは機能を送信 
詳細なAPIリファレンスおよび開発者ドキュメントについては、Java SEのドキュメントを参照してください。そのドキュメントには、概念的な概要、用語の定義、回避方法、有効なコード例などの、開発者を対象にしたより詳細な説明が含まれています。
 Copyright© 1993, 2014, Oracle and/or its affiliates. All rights reserved.