public class KeyGenerator extends Object
キー・ジェネレータは、このクラスのgetInstanceクラス・メソッドの1つを使用して構築されます。
 
KeyGeneratorオブジェクトは再使用できます。つまり、キーの生成後、同じKeyGeneratorオブジェクトを再使用してさらにキーを生成することができます。
キーの生成方法には、アルゴリズム独立型とアルゴリズム固有型の2つがあります。 この2つの唯一の相違点は、オブジェクトの初期化にあります。
すべてのキー・ジェネレータが、キー・サイズおよび乱数発生の元の概念を共有します。 このKeyGeneratorクラスには、普遍的に共有されるこれら2つの引数の型をとるinitメソッドが存在します。 また、引数にkeysizeだけをとり、乱数発生の元として、もっとも高い優先順位でインストールされているプロバイダのSecureRandomの実装を使用するinitメソッド(SecureRandomの実装を提供するプロバイダが1つもインストールされていない場合は、システムが提供する乱数発生の元を使用)、および乱数発生の元だけをとるinitメソッドもあります。 
 
上記のアルゴリズムに依存しないinitメソッドを呼び出した場合、パラメータが指定されないため、それぞれのキーに関連したアルゴリズム固有のパラメータが存在する場合、これをどのように扱うかはプロバイダに任されます。
 
アルゴリズム固有のパラメータのセットがすでに存在する状況では、AlgorithmParameterSpec引数を取る2つのinitメソッドが存在します。 このうち一方は引数にSecureRandomもとりますが、もう一方は、乱数発生の元として、もっとも高い優先順位でインストールされているプロバイダのSecureRandomの実装を使用します(SecureRandomの実装を提供するプロバイダが1つもインストールされていない場合は、システムが提供する乱数発生の元を使用)。 
 
クライアントが(initメソッドの呼出しによって) KeyGeneratorを明示的に初期化しない場合は、各プロバイダがデフォルトの初期化を提供(および文書化)する必要があります。
 
 Javaプラットフォームの実装は、すべて次の標準のKeyGeneratorアルゴリズムとカッコ内のキー・サイズをサポートする必要があります。
 
AES (128)DES (56)DESede (168)HmacSHA1HmacSHA256SecretKey| 修飾子 | コンストラクタ | 説明 | 
|---|---|---|
| protected  | KeyGenerator(KeyGeneratorSpi keyGenSpi, Provider provider, String algorithm) | KeyGeneratorオブジェクトを生成します。 | 
| 修飾子と型 | メソッド | 説明 | 
|---|---|---|
| SecretKey | generateKey() | 秘密キーを生成します。 | 
| String | getAlgorithm() | この KeyGeneratorオブジェクトのアルゴリズム名を返します。 | 
| static KeyGenerator | getInstance(String algorithm) | 指定されたアルゴリズムの秘密キーを生成する KeyGeneratorオブジェクトを返します。 | 
| static KeyGenerator | getInstance(String algorithm, Provider provider) | 指定されたアルゴリズムの秘密キーを生成する KeyGeneratorオブジェクトを返します。 | 
| static KeyGenerator | getInstance(String algorithm, String provider) | 指定されたアルゴリズムの秘密キーを生成する KeyGeneratorオブジェクトを返します。 | 
| Provider | getProvider() | この KeyGeneratorオブジェクトのプロバイダを返します。 | 
| void | init(AlgorithmParameterSpec params) | このキー・ジェネレータを、指定されたパラメータ・セットを使って初期化します。 | 
| void | init(AlgorithmParameterSpec params, SecureRandom random) | 指定されたパラメータ・セットとユーザーが提供する乱数発生の元を使って、このキー・ジェネレータを初期化します。 | 
| void | init(int keysize) | このキー・ジェネレータを特定のキー・サイズに応じて初期化します。 | 
| void | init(int keysize, SecureRandom random) | ユーザーが提供する乱数発生の元を使って、このキー・ジェネレータを特定のキー・サイズに応じて初期化します。 | 
| void | init(SecureRandom random) | このキー・ジェネレータを初期化します。 | 
protected KeyGenerator(KeyGeneratorSpi keyGenSpi, Provider provider, String algorithm)
keyGenSpi - 委譲先provider - プロバイダalgorithm - アルゴリズムpublic final String getAlgorithm()
KeyGeneratorオブジェクトのアルゴリズム名を返します。
 これは、このKeyGeneratorオブジェクトを作成したgetInstance呼出しのいずれかに指定された名前と同じです。
KeyGeneratorオブジェクトのアルゴリズム名。public static final KeyGenerator getInstance(String algorithm) throws NoSuchAlgorithmException
KeyGeneratorオブジェクトを返します。
 このメソッドは、最優先のProviderから順に、登録済みのセキュリティProviderのリストをトラバースします。 指定されたアルゴリズムをサポートする最初のプロバイダのKeyGeneratorSpi実装をカプセル化する新しいKeyGeneratorオブジェクトが返されます。
 登録済みプロバイダのリストは、Security.getProviders()メソッド経由で取得できます。
algorithm - 要求されたキー・アルゴリズムの標準名。 標準のアルゴリズム名については、Java暗号化アーキテクチャ標準アルゴリズム名のドキュメントのKeyGeneratorのセクションを参照。 KeyGeneratorオブジェクト。NullPointerException - 指定されたアルゴリズムがnullである場合。NoSuchAlgorithmException - 指定したアルゴリズムのKeyGeneratorSpi実装をサポートするプロバイダが存在しない場合。Providerpublic static final KeyGenerator getInstance(String algorithm, String provider) throws NoSuchAlgorithmException, NoSuchProviderException
KeyGeneratorオブジェクトを返します。
 指定されたプロバイダからのKeyGeneratorSpiの実装をカプセル化する新しいKeyGeneratorオブジェクトが返されます。 指定したプロバイダは、セキュリティ・プロバイダ・リストに登録する必要があります。
 登録済みプロバイダのリストは、Security.getProviders()メソッド経由で取得できます。
algorithm - 要求されたキー・アルゴリズムの標準名。 標準のアルゴリズム名については、Java暗号化アーキテクチャ標準アルゴリズム名のドキュメントのKeyGeneratorのセクションを参照。 provider - プロバイダ名KeyGeneratorオブジェクト。NullPointerException - 指定されたアルゴリズムがnullである場合。NoSuchAlgorithmException - 指定されたプロバイダに指定されたアルゴリズムのKeyGeneratorSpiの実装がない場合。NoSuchProviderException - 指定されたプロバイダがセキュリティ・プロバイダ・リストに登録されていない場合IllegalArgumentException - providerがnullまたは空の場合Providerpublic static final KeyGenerator getInstance(String algorithm, Provider provider) throws NoSuchAlgorithmException
KeyGeneratorオブジェクトを返します。
 指定されたProviderオブジェクトからのKeyGeneratorSpiの実装をカプセル化する新しいKeyGeneratorオブジェクトが返されます。 指定されたProviderオブジェクトは、プロバイダ・リストに登録する必要はありません。
algorithm - 要求されたキー・アルゴリズムの標準名。 標準のアルゴリズム名については、Java暗号化アーキテクチャ標準アルゴリズム名のドキュメントのKeyGeneratorのセクションを参照。 provider - プロバイダKeyGeneratorオブジェクト。NullPointerException - 指定されたアルゴリズムがnullである場合。NoSuchAlgorithmException - 指定されたProviderオブジェクトに指定されたアルゴリズムのKeyGeneratorSpiの実装がない場合。IllegalArgumentException - providerがnullの場合Providerpublic final Provider getProvider()
KeyGeneratorオブジェクトのプロバイダを返します。KeyGeneratorオブジェクトのプロバイダpublic final void init(SecureRandom random)
random - このジェネレータの乱数発生の元public final void init(AlgorithmParameterSpec params) throws InvalidAlgorithmParameterException
 このキー・ジェネレータが乱数バイトを必要とする場合は、インストールされているプロバイダのうち、もっとも優先順位の高いプロバイダのSecureRandomの実装を乱数発生の元として使用して乱数バイトを取得します。 SecureRandomを提供するプロバイダが1つもインストールされていない場合は、システムが提供する乱数発生の元が使用されます。 
params - キー・ジェネレータのパラメータInvalidAlgorithmParameterException - 指定されたパラメータがこのキー・ジェネレータに不適切な場合public final void init(AlgorithmParameterSpec params, SecureRandom random) throws InvalidAlgorithmParameterException
params - キー・ジェネレータのパラメータrandom - このキー・ジェネレータの乱数発生の元InvalidAlgorithmParameterException - paramsがこのキー・ジェネレータに不適切な場合public final void init(int keysize)
 このキー・ジェネレータが乱数バイトを必要とする場合は、インストールされているプロバイダのうち、もっとも優先順位の高いプロバイダのSecureRandomの実装を乱数発生の元として使用して乱数バイトを取得します。 SecureRandomを提供するプロバイダが1つもインストールされていない場合は、システムが提供する乱数発生の元が使用されます。 
keysize - キー・サイズ。 ビット長で指定されたアルゴリズム固有のメトリックス InvalidParameterException - キー・サイズが間違っているか、サポートされていない場合。public final void init(int keysize,
                       SecureRandom random)
keysize - キー・サイズ。 ビット長で指定されたアルゴリズム固有のメトリックス random - このキー・ジェネレータの乱数発生の元InvalidParameterException - キー・サイズが間違っているか、サポートされていない場合。public final SecretKey generateKey()
 バグまたは機能を送信 
詳細なAPIリファレンスおよび開発者ドキュメントについては、Java SEのドキュメントを参照してください。 そのドキュメントには、概念的な概要、用語の定義、回避方法、有効なコード例などの、開発者を対象にしたより詳細な説明が含まれています。 
 Copyright © 1993, 2025, Oracle and/or its affiliates.  All rights reserved.  Use is subject to license terms.  Documentation Redistribution Policyも参照してください。