SecureRandom クラス
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
このクラスは、暗号的に強力な乱数ジェネレーター (RNG) を提供します。
[Android.Runtime.Register("java/security/SecureRandom", DoNotGenerateAcw=true)]
public class SecureRandom : Java.Util.Random
[<Android.Runtime.Register("java/security/SecureRandom", DoNotGenerateAcw=true)>]
type SecureRandom = class
inherit Random
- 継承
- 属性
注釈
このクラスは、暗号的に強力な乱数ジェネレーター (RNG) を提供します。
暗号的に強力な乱数は、FIPS 140-2、暗号モジュールのセキュリティ要件、セクション 4.9.1 で指定されている統計的乱数ジェネレーター テストに最小限準拠していますhttp://csrc.nist.gov/cryptval/140-2.htm。 さらに、SecureRandom は非決定論的な出力を生成する必要があります。 したがって、SecureRandom オブジェクトに渡されるシード マテリアルは予測不可能である必要があり、 RFC 1750: Randomness Recommendations for Securityhttp://www.ietf.org/rfc/rfc1750.txt で説明されているように、すべての SecureRandom 出力シーケンスは暗号的に強力である必要があります。
呼び出し元は、引数なしのコンストラクターまたはいずれかのメソッドを使用して SecureRandom インスタンスを getInstance
取得します。
SecureRandom random = new SecureRandom();
多くの SecureRandom 実装は、擬似乱数ジェネレーター (PRNG) の形式です。つまり、決定論的アルゴリズムを使用して、真のランダム シードから擬似ランダム シーケンスを生成します。 他の実装では真の乱数が生成される場合があり、他の実装では両方の手法を組み合わせて使用できます。
SecureRandom の一般的な呼び出し元は、ランダムバイトを取得するために次のメソッドを呼び出します。
SecureRandom random = new SecureRandom();
byte bytes[] = new byte[20];
random.nextBytes(bytes);
呼び出し元は、 メソッドを generateSeed
呼び出して、特定の数のシード バイトを生成することもできます (たとえば、他の乱数ジェネレーターをシードする場合)。
byte seed[] = random.generateSeed(20);
注: 実装によっては、 generateSeed
メソッドと nextBytes
メソッドがエントロピの収集時にブロックされる場合があります。たとえば、さまざまな Unix に似たオペレーティング システムで /dev/random から読み取る必要がある場合などです。
Crypto プロバイダーのSHA1PRNG アルゴリズムは安全でなかったため非推奨となり、一部のアプリではキー派生関数として誤って使用されています。 詳細については 、「Android N で非推奨のセキュリティ "Crypto" プロバイダー」 を参照してください。
の java.security.SecureRandom
Java ドキュメント。
このページの一部は、によって作成および共有された作業に基づく変更であり、に記載されている条件に従って使用されます。
コンストラクター
SecureRandom() |
既定の乱数アルゴリズムを実装するセキュリティで保護された乱数ジェネレーター (RNG) を構築します。 |
SecureRandom(Byte[]) |
既定の乱数アルゴリズムを実装するセキュリティで保護された乱数ジェネレーター (RNG) を構築します。 |
SecureRandom(IntPtr, JniHandleOwnership) |
JNI オブジェクトのマネージド表現を作成するときに使用されるコンストラクター。ランタイムによって呼び出されます。 |
SecureRandom(SecureRandomSpi, Provider) |
SecureRandom オブジェクトを作成します。 |
プロパティ
Algorithm |
この SecureRandom オブジェクトによって実装されるアルゴリズムの名前を返します。 |
Class |
この |
Handle |
基になる Android インスタンスへのハンドル。 (継承元 Object) |
InstanceStrong |
|
JniIdentityHashCode |
このクラスは、暗号的に強力な乱数ジェネレーター (RNG) を提供します。 (継承元 Object) |
JniPeerMembers |
このクラスは、暗号的に強力な乱数ジェネレーター (RNG) を提供します。 |
PeerReference |
このクラスは、暗号的に強力な乱数ジェネレーター (RNG) を提供します。 (継承元 Object) |
Provider |
この SecureRandom オブジェクトのプロバイダーを返します。 |
ThresholdClass |
この API は Mono for Android インフラストラクチャをサポートしており、コードから直接使用するためのものではありません。 |
ThresholdType |
この API は Mono for Android インフラストラクチャをサポートしており、コードから直接使用するためのものではありません。 |
メソッド
Clone() |
このオブジェクトのコピーを作成して返します。 (継承元 Object) |
Dispose() |
このクラスは、暗号的に強力な乱数ジェネレーター (RNG) を提供します。 (継承元 Object) |
Dispose(Boolean) |
このクラスは、暗号的に強力な乱数ジェネレーター (RNG) を提供します。 (継承元 Object) |
Equals(Object) |
他のオブジェクトがこのオブジェクトと "等しい" かどうかを示します。 (継承元 Object) |
GenerateSeed(Int32) |
このクラスがシード自体に使用するシード生成アルゴリズムを使用して計算された、指定されたシード バイト数を返します。 |
GetHashCode() |
オブジェクトのハッシュ コード値を返します。 (継承元 Object) |
GetInstance(String) |
指定した乱数ジェネレーター (RNG) アルゴリズムを実装する SecureRandom オブジェクトを返します。 |
GetInstance(String, Provider) |
指定した乱数ジェネレーター (RNG) アルゴリズムを実装する SecureRandom オブジェクトを返します。 |
GetInstance(String, String) |
指定した乱数ジェネレーター (RNG) アルゴリズムを実装する SecureRandom オブジェクトを返します。 |
GetSeed(Int32) |
このクラスがシード自体に使用するシード生成アルゴリズムを使用して計算された、指定されたシード バイト数を返します。 |
JavaFinalize() |
オブジェクトへの参照がなくなったとガベージ コレクションが判断したときに、オブジェクトのガベージ コレクターによって呼び出されます。 (継承元 Object) |
Next(Int32) |
ユーザー指定の擬似ランダム ビット数を含む整数を生成します (右揃えで、先頭に 0 が付けられます)。 |
NextBoolean() |
この乱数ジェネレーターのシーケンスから、次の擬似乱数を一様に分散した |
NextBytes(Byte[]) |
ランダムなバイトを生成し、ユーザー指定のバイト配列に配置します。 (継承元 Random) |
NextDouble() |
この乱数ジェネレーターのシーケンスとの間 |
NextFloat() |
この乱数ジェネレーターのシーケンスとの間 |
NextGaussian() |
この乱数ジェネレーターのシーケンスからの平均 |
NextInt() |
この乱数ジェネレーターのシーケンスから、次の擬似乱数を一様に分散した |
NextInt(Int32) |
この乱数ジェネレーターのシーケンスから取得された、0 (包括) から指定された値 (排他的) の間で一様に分散 |
NextLong() |
この乱数ジェネレーターのシーケンスから、次の擬似乱数を一様に分散した |
Notify() |
このオブジェクトのモニターで待機している 1 つのスレッドを起動します。 (継承元 Object) |
NotifyAll() |
このオブジェクトのモニターで待機しているすべてのスレッドを起動します。 (継承元 Object) |
SetHandle(IntPtr, JniHandleOwnership) |
Handle プロパティを設定します。 (継承元 Object) |
SetSeed(Byte[]) |
このランダム オブジェクトを再シードします。 |
SetSeed(Int64) |
1 つの |
ToArray<T>() |
このクラスは、暗号的に強力な乱数ジェネレーター (RNG) を提供します。 (継承元 Object) |
ToString() |
オブジェクトの文字列形式を返します。 (継承元 Object) |
UnregisterFromRuntime() |
このクラスは、暗号的に強力な乱数ジェネレーター (RNG) を提供します。 (継承元 Object) |
Wait() |
現在のスレッドが起動するまで待機します。通常<は、通知</em> または>< em 中断</em によって待機します>。> (継承元 Object) |
Wait(Int64) |
現在のスレッドが起動するまで待機します。通常<は、通知></em> または <>em 中断</em>、または特定のリアルタイムが経過するまで待機します。 (継承元 Object) |
Wait(Int64, Int32) |
現在のスレッドが起動するまで待機します。通常<は、通知></em> または <>em 中断</em>、または特定のリアルタイムが経過するまで待機します。 (継承元 Object) |
明示的なインターフェイスの実装
IJavaPeerable.Disposed() |
このクラスは、暗号的に強力な乱数ジェネレーター (RNG) を提供します。 (継承元 Object) |
IJavaPeerable.DisposeUnlessReferenced() |
このクラスは、暗号的に強力な乱数ジェネレーター (RNG) を提供します。 (継承元 Object) |
IJavaPeerable.Finalized() |
このクラスは、暗号的に強力な乱数ジェネレーター (RNG) を提供します。 (継承元 Object) |
IJavaPeerable.JniManagedPeerState |
このクラスは、暗号的に強力な乱数ジェネレーター (RNG) を提供します。 (継承元 Object) |
IJavaPeerable.SetJniIdentityHashCode(Int32) |
このクラスは、暗号的に強力な乱数ジェネレーター (RNG) を提供します。 (継承元 Object) |
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates) |
このクラスは、暗号的に強力な乱数ジェネレーター (RNG) を提供します。 (継承元 Object) |
IJavaPeerable.SetPeerReference(JniObjectReference) |
このクラスは、暗号的に強力な乱数ジェネレーター (RNG) を提供します。 (継承元 Object) |
拡張メソッド
JavaCast<TResult>(IJavaObject) |
Android ランタイムチェック型変換を実行します。 |
JavaCast<TResult>(IJavaObject) |
このクラスは、暗号的に強力な乱数ジェネレーター (RNG) を提供します。 |
GetJniTypeName(IJavaPeerable) |
このクラスは、暗号的に強力な乱数ジェネレーター (RNG) を提供します。 |