- すべての実装されたインタフェース:
- Serializable
SecureRandomクラスの「サービス・プロバイダ・インタフェース」 (SPI)を定義します。
 このクラス内のすべての抽象メソッドは、暗号用に強化した擬似乱数ジェネレータの実装を供給しようとする各サービス・プロバイダによって実装される必要があります。
- 実装要件:
- SecureRandomSpi(SecureRandomParameters)コンストラクタが実装でオーバーライドされている場合、- SecureRandomがインスタンス化されるたびに必ず呼び出されます。 具体的には、オブジェクトが- SecureRandom- getInstanceメソッドwithoutと- SecureRandomParametersパラメータのいずれかでインスタンス化される場合、コンストラクタは- null引数で呼び出され、実装は- engineGetParameters()が呼び出されるときに使用する独自の- SecureRandomParametersパラメータを作成します。 オブジェクトが- SecureRandom- getInstanceメソッドwithと- SecureRandomParametersのいずれかの引数でインスタンス化されている場合、その引数でコンストラクタが呼び出されます。- engineGetParameters()メソッドは- nullを返してはなりません。- それ以外の場合、 - SecureRandomSpi(SecureRandomParameters)コンストラクタが実装でオーバーライドされていない場合、- SecureRandomSpi()コンストラクタをオーバーライドする必要があります。オブジェクトが- SecureRandom- getInstanceメソッドwithoutと- SecureRandomParameters引数のいずれかを使用してインスタンス化された場合に呼び出されます。- SecureRandom- getInstanceのメソッドwithと- SecureRandomParametersのいずれかを呼び出すと、この実装のインスタンスは返されません。- engineGetParameters()メソッドは- nullを返す必要があります。- スレッドの安全性の詳細については、 - SecureRandomを参照してください。 デフォルトでは、- SecureRandomSpiの実装は、複数の同時スレッドで使用するのが安全ではないとみなされ、- SecureRandomは、該当する各エンジン・メソッド(メソッドのリストについては、- SecureRandomを参照してください。)へのアクセスを同期します。 ただし、- SecureRandomSpi実装がスレッド・セーフである場合、「サービス・プロバイダ属性」 "ThreadSafe"は、登録時に次のように"true"に設定する必要があります:
 or- put("SecureRandom.AlgName ThreadSafe", "true");- putService(new Service(this, "SecureRandom", "AlgName", className, null, Map.of("ThreadSafe", "true")));- SecureRandomは、同期を行わずに該当するエンジン・メソッドを呼び出します。
- 導入されたバージョン:
- 1.2
- 関連項目:
- 
コンストラクタのサマリーコンストラクタ修飾子コンストラクタ説明パラメータを持たないコンストラクタです。protectedパラメータを持つコンストラクタです。
- 
メソッドのサマリー修飾子と型メソッド説明protected abstract byte[]engineGenerateSeed(int numBytes) 指定されたバイト数のシード・バイト数を返します。protected SecureRandomParametersこのSecureRandomインスタンスの実効SecureRandomParametersを返します。protected abstract voidengineNextBytes(byte[] bytes) ユーザーが指定したバイト数の乱数バイト数を生成します。protected voidengineNextBytes(byte[] bytes, SecureRandomParameters params) 追加のパラメータを使用して、ユーザーが指定した数のランダムなバイトを生成します。protected voidengineReseed(SecureRandomParameters params) このランダム・オブジェクトを、エントロピ入力から追加のパラメータで読み取ったエントロピ入力で再計算します。protected abstract voidengineSetSeed(byte[] seed) このランダム・オブジェクトを指定されたシードで再割り当てします。toString()このSecureRandomの人間が読める文字列表現を返します。
- 
コンストラクタの詳細- 
SecureRandomSpipublic SecureRandomSpi()パラメータを持たないコンストラクタです。
- 
SecureRandomSpiprotected SecureRandomSpi(SecureRandomParameters params) パラメータを持つコンストラクタです。- パラメータ:
- params-- SecureRandomParametersオブジェクト。 この引数には- nullを指定できます。
- 例外:
- IllegalArgumentException- この- SecureRandomによって- paramsが認識できないか、またはサポートされていない場合
- 導入されたバージョン:
- 9
 
 
- 
- 
メソッドの詳細- 
engineSetSeedprotected abstract void engineSetSeed(byte[] seed) このランダム・オブジェクトを指定されたシードで再割り当てします。 種子は、既存の種子を置き換えるのではなく、補充します。 これにより、呼出しを繰り返しても、ランダム性が減少しないことが保証されます。- パラメータ:
- seed- シード。
 
- 
engineNextBytesprotected abstract void engineNextBytes(byte[] bytes) ユーザーが指定したバイト数の乱数バイト数を生成します。いくつかの乱数ジェネレータは、呼び出しごとに限られた量のランダム・バイトしか生成できません。 bytesのサイズがこの制限より大きい場合、実装はこのメソッドから戻す前に、生成プロセスを複数回呼び出してバッファを完全に満たす必要があります。- パラメータ:
- bytes- 乱数バイトを充填する配列。
 
- 
engineNextBytesprotected void engineNextBytes(byte[] bytes, SecureRandomParameters params) 追加のパラメータを使用して、ユーザーが指定した数のランダムなバイトを生成します。いくつかの乱数ジェネレータは、呼び出しごとに限られた量のランダム・バイトしか生成できません。 bytesのサイズがこの制限より大きい場合、実装はこのメソッドから戻す前に、生成プロセスを複数回呼び出してバッファを完全に満たす必要があります。- 実装要件:
- デフォルトの実装では、UnsupportedOperationExceptionがスローされます。
- パラメータ:
- bytes- 乱数バイトを充填する配列
- params- 追加パラメータ
- 例外:
- UnsupportedOperationException- 実装がこのメソッドをオーバーライドしていない場合
- IllegalArgumentException-- paramsが- nullの場合、この- SecureRandomによって不正またはサポートされていない
- 導入されたバージョン:
- 9
 
- 
engineGenerateSeedprotected abstract byte[] engineGenerateSeed(int numBytes) 指定されたバイト数のシード・バイト数を返します。 この呼出しを使うと、ほかの乱数ジェネレータをシードできます。- パラメータ:
- numBytes- 生成するシード・バイト数。
- 戻り値:
- シード・バイト。
 
- 
engineReseedprotected void engineReseed(SecureRandomParameters params) このランダム・オブジェクトを、エントロピ入力から追加のパラメータで読み取ったエントロピ入力で再計算します。このメソッドが SecureRandom.reseed()によって呼び出された場合、paramsはnullになります。実装が再シードをサポートしていない場合は、このメソッドをオーバーライドしないでください。 - 実装要件:
- デフォルトの実装では、UnsupportedOperationExceptionがスローされます。
- パラメータ:
- params- 余分なパラメータは、- nullにすることができます。
- 例外:
- UnsupportedOperationException- 実装がこのメソッドをオーバーライドしていない場合
- IllegalArgumentException- この- SecureRandomによって- paramsが不正またはサポートされていない場合
- 導入されたバージョン:
- 9
 
- 
engineGetParametersprotected SecureRandomParameters engineGetParameters()このSecureRandomインスタンスの実効SecureRandomParametersを返します。- 実装要件:
- デフォルトの実装ではnullを返します。
- 戻り値:
- 有効なSecureRandomParametersパラメータ、またはパラメータが使用されていない場合はnull。
- 導入されたバージョン:
- 9
 
- 
toStringpublic String toString()このSecureRandomの人間が読める文字列表現を返します。
 
-