SecureRandom Classe

Definizione

Questa classe fornisce un generatore RNG (Cryptographically Strong Random Number Generator).

[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
Ereditarietà
SecureRandom
Attributi

Commenti

Questa classe fornisce un generatore RNG (Cryptographically Strong Random Number Generator).

Un numero casuale crittograficamente sicuro è conforme minimamente ai test statistici del generatore di numeri casuali specificati in FIPS 140-2, Requisiti di sicurezza per i modulihttp://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.140-2.pdf crittografici, sezione 4.9.1. Inoltre, SecureRandom deve produrre output non deterministico. Pertanto, qualsiasi materiale di inizializzazione passato a un SecureRandom oggetto deve essere imprevedibile e tutte le SecureRandom sequenze di output devono essere crittograficamente complesse, come descritto in RFC 4086: Requisiti di casualità per la sicurezzahttp://tools.ietf.org/html/rfc4086.

Molte SecureRandom implementazioni sono sotto forma di generatore di numeri pseudo-casuali (PRNG, noto anche come generatore di bit casuali deterministici o DRBG), il che significa che usano un algoritmo deterministico per produrre una sequenza pseudo-casuale da un valore di inizializzazione casuale. Altre implementazioni possono produrre numeri casuali reali, ma altri possono usare una combinazione di entrambe le tecniche.

Un chiamante ottiene un'istanza SecureRandom tramite il costruttore no-argument o uno dei getInstance metodi . Per esempio:

<blockquote>

SecureRandom r1 = new SecureRandom();
            SecureRandom r2 = SecureRandom.getInstance("NativePRNG");
            SecureRandom r3 = SecureRandom.getInstance("DRBG",
                    DrbgParameters.instantiation(128, RESEED_ONLY, null));

</blockquote>

La terza istruzione precedente restituisce un SecureRandom oggetto dell'algoritmo specifico che supporta i parametri di creazione di istanze specifici. I parametri di creazione di istanze effettivi dell'implementazione devono corrispondere a questa richiesta minima, ma non sono necessariamente uguali. Ad esempio, anche se la richiesta non richiede una determinata funzionalità, la creazione di istanze effettiva può fornire la funzionalità. Un'implementazione può creare un'istanza differire di un SecureRandom finché non viene effettivamente usata, ma i parametri di creazione di istanze effettivi devono essere determinati subito dopo la creazione e #getParameters() devono restituire sempre lo stesso risultato invariato.

I chiamanti tipici di SecureRandom richiamano i metodi seguenti per recuperare byte casuali:

<blockquote>

SecureRandom random = new SecureRandom();
            byte[] bytes = new byte[20];
            random.nextBytes(bytes);

</blockquote>

I chiamanti possono anche richiamare il #generateSeed metodo per generare un determinato numero di byte di inizializzazione (per inizializzare altri generatori di numeri casuali, ad esempio):

<blockquote>

byte[] seed = random.generateSeed(20);

</blockquote>

Un oggetto PRNG SecureRandom appena creato non viene sottoposto a seeding (tranne se viene creato da #SecureRandom(byte[])). La prima chiamata a nextBytes forza il seeding da un'origine entropia specifica dell'implementazione. Questo self-seeding non si verificherà se setSeed è stato chiamato in precedenza.

Un SecureRandom oggetto può essere reinviato in qualsiasi momento chiamando il reseed metodo o setSeed . Il reseed metodo legge l'input di entropia dall'origine entropia per reinsediare se stesso. Il setSeed metodo richiede al chiamante di fornire il valore di inizializzazione.

Si noti che reseed potrebbe non essere supportato da tutte le SecureRandom implementazioni.

Alcune SecureRandom implementazioni possono accettare un SecureRandomParameters parametro nei relativi #nextBytes(byte[], SecureRandomParameters) metodi e #reseed(SecureRandomParameters) per controllare ulteriormente il comportamento dei metodi.

Nota: a seconda dell'implementazione, i generateSeedmetodi e reseednextBytes possono bloccarsi man mano che viene raccolta l'entropia, ad esempio se l'origine entropia è /dev/casuale in vari sistemi operativi simili a Unix.

<gli oggetti h2> Thread safety </h2>SecureRandom sono sicuri per l'uso da parte di più thread simultanei.

Aggiunta nella versione 1.1.

per java.security.SecureRandom.

Le parti di questa pagina sono modifiche basate sul lavoro creato e condiviso dalla e usati in base ai termini descritti in Creative License 2.5 Attribution License.

Costruttori

Nome Descrizione
SecureRandom()

Costruisce un generatore di numeri casuali sicuro (RNG) che implementa l'algoritmo di numero casuale predefinito.

SecureRandom(Byte[])

Costruisce un generatore di numeri casuali sicuro (RNG) che implementa l'algoritmo di numero casuale predefinito.

SecureRandom(IntPtr, JniHandleOwnership)

Costruttore usato durante la creazione di rappresentazioni gestite di oggetti JNI; chiamato dal runtime.

SecureRandom(SecureRandomSpi, Provider)

Crea un oggetto SecureRandom.

Proprietà

Nome Descrizione
Algorithm

Restituisce il nome dell'algoritmo implementato da questo SecureRandom oggetto.

Class

Restituisce la classe di runtime di questo Objectoggetto .

(Ereditato da Object)
Handle

Handle per l'istanza di Android sottostante.

(Ereditato da Object)
InstanceStrong

Restituisce un oggetto SecureRandom.

JniIdentityHashCode

Ottiene il codice hash di identità assegnato a questo Java peer dal runtime di interoperabilità.

(Ereditato da Object)
JniPeerMembers

Questa classe fornisce un generatore RNG (Cryptographically Strong Random Number Generator).

Parameters

Restituisce l'oggetto effettivo SecureRandomParameters per questa SecureRandom istanza.

PeerReference

Ottiene il riferimento all'oggetto JNI per questo peer Java.

(Ereditato da Object)
Provider

Restituisce il provider di questo SecureRandom oggetto.

ThresholdClass

Questa API supporta l'infrastruttura Mono per Android e non deve essere usata direttamente dal codice.

ThresholdType

Questa API supporta l'infrastruttura Mono per Android e non deve essere usata direttamente dal codice.

Metodi

Nome Descrizione
Clone()

Crea e restituisce una copia di questo oggetto.

(Ereditato da Object)
Dispose()

Rilascia le risorse contenute in questo peer Java.

(Ereditato da Object)
Dispose(Boolean)

Rilascia le risorse contenute in questo peer Java.

(Ereditato da Object)
Equals(Object)

Indica se un altro oggetto è "uguale a" questo.

(Ereditato da Object)
GenerateSeed(Int32)

Restituisce il numero specificato di byte di inizializzazione, calcolato usando l'algoritmo di generazione di inizializzazione utilizzato da questa classe per eseguire il seeding stesso.

GetHashCode()

Restituisce un valore di codice hash per l'oggetto .

(Ereditato da Object)
GetInstance(String, ISecureRandomParameters, Provider)

Restituisce un SecureRandom oggetto che implementa l'algoritmo RNG (Random Number Generator) specificato e supporta la richiesta specificata SecureRandomParameters .

GetInstance(String, ISecureRandomParameters, String)

Restituisce un SecureRandom oggetto che implementa l'algoritmo RNG (Random Number Generator) specificato e supporta la richiesta specificata SecureRandomParameters .

GetInstance(String, ISecureRandomParameters)

Restituisce un SecureRandom oggetto che implementa l'algoritmo RNG (Random Number Generator) specificato e supporta la richiesta specificata SecureRandomParameters .

GetInstance(String, Provider)

Restituisce un SecureRandom oggetto che implementa l'algoritmo RNG (Random Number Generator) specificato.

GetInstance(String, String)

Restituisce un SecureRandom oggetto che implementa l'algoritmo RNG (Random Number Generator) specificato.

GetInstance(String)

Restituisce un SecureRandom oggetto che implementa l'algoritmo RNG (Random Number Generator) specificato.

GetSeed(Int32)

Restituisce il numero specificato di byte di inizializzazione, calcolato usando l'algoritmo di generazione di inizializzazione utilizzato da questa classe per eseguire il seeding stesso.

JavaFinalize()

Chiamato dal Garbage Collector su un oggetto quando Garbage Collection determina che non sono presenti altri riferimenti all'oggetto .

(Ereditato da Object)
Next(Int32)

Genera un numero intero contenente il numero specificato dall'utente di bit pseudo-casuali (giustificato a destra, con zeri iniziali).

NextBoolean()

Restituisce il valore pseudorandomo successivo, distribuito boolean in modo uniforme dalla sequenza del generatore di numeri casuali.

(Ereditato da Random)
NextBytes(Byte[], ISecureRandomParameters)

Genera un numero specificato dall'utente di byte casuali con parametri aggiuntivi.

NextBytes(Byte[])

Genera byte casuali e li inserisce in una matrice di byte fornita dall'utente.

(Ereditato da Random)
NextDouble()

Restituisce il valore pseudorandomo successivo, distribuito double in modo uniforme tra 0.0 e 1.0 dalla sequenza del generatore di numeri casuali.

(Ereditato da Random)
NextFloat()

Restituisce il valore pseudorandomo successivo, distribuito float in modo uniforme tra 0.0 e 1.0 dalla sequenza del generatore di numeri casuali.

(Ereditato da Random)
NextGaussian()

Restituisce il valore distribuito pseudorandomo successivo, gaussiano ("normalmente") double con deviazione 0.0 media 1.0 e standard dalla sequenza del generatore di numeri casuali.

(Ereditato da Random)
NextInt()

Restituisce il valore pseudorandomo successivo, distribuito int in modo uniforme dalla sequenza del generatore di numeri casuali.

(Ereditato da Random)
NextInt(Int32)

Restituisce uno pseudorandomo, distribuito int in modo uniforme tra 0 (inclusivo) e il valore specificato (esclusivo), estratto dalla sequenza del generatore di numeri casuali.

(Ereditato da Random)
NextLong()

Restituisce il valore pseudorandomo successivo, distribuito long in modo uniforme dalla sequenza del generatore di numeri casuali.

(Ereditato da Random)
Notify()

Riattiva un singolo thread in attesa del monitor dell'oggetto.

(Ereditato da Object)
NotifyAll()

Riattiva tutti i thread in attesa del monitor dell'oggetto.

(Ereditato da Object)
Reseed()

Viene restituito con SecureRandom l'input di entropia letto dalla relativa origine entropia.

Reseed(ISecureRandomParameters)

Viene restituito con SecureRandom l'input di entropia letto dall'origine entropia con parametri aggiuntivi.

SetHandle(IntPtr, JniHandleOwnership)

Imposta la proprietà Handle.

(Ereditato da Object)
SetSeed(Byte[])

Invia nuovamente questo oggetto casuale con il valore di inizializzazione specificato.

SetSeed(Int64)

Imposta il valore di inizializzazione di questo generatore di numeri casuali usando un singolo long valore di inizializzazione.

(Ereditato da Random)
ToArray<T>()

Crea una matrice gestita da questo wrapper di matrice Java.

(Ereditato da Object)
ToString()

Restituisce una rappresentazione di stringa dell'oggetto .

(Ereditato da Object)
UnregisterFromRuntime()

Annulla la registrazione di questo Java peer dal runtime di interoperabilità.

(Ereditato da Object)
Wait()

Fa sì che il thread corrente attenda finché non viene risvegliato, in genere ricevendo <>una notifica</em> o <em>interrotto</em>.

(Ereditato da Object)
Wait(Int64, Int32)

Fa sì che il thread corrente attenda finché non viene risvegliato, in genere ricevendo<> una notifica</em> o <em>interrotto</em> o fino a quando non è trascorsa una determinata quantità di tempo reale.

(Ereditato da Object)
Wait(Int64)

Fa sì che il thread corrente attenda finché non viene risvegliato, in genere ricevendo<> una notifica</em> o <em>interrotto</em> o fino a quando non è trascorsa una determinata quantità di tempo reale.

(Ereditato da Object)

Implementazioni dell'interfaccia esplicita

Nome Descrizione
IJavaPeerable.Disposed()

Notifica al runtime di interoperabilità che il peer gestito è stato eliminato.

(Ereditato da Object)
IJavaPeerable.DisposeUnlessReferenced()

Rilascia questo Java peer a meno che non venga conservato da un altro riferimento gestito.

(Ereditato da Object)
IJavaPeerable.Finalized()

Notifica al runtime di interoperabilità che il peer gestito è stato finalizzato.

(Ereditato da Object)
IJavaPeerable.JniManagedPeerState

Ottiene lo stato che descrive la relazione tra questo peer gestito e il relativo riferimento JNI.

(Ereditato da Object)
IJavaPeerable.SetJniIdentityHashCode(Int32)

Imposta il codice hash dell'identità di interoperabilità per questo Java peer.

(Ereditato da Object)
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates)

Imposta lo stato peer gestito e JNI per questo peer Java.

(Ereditato da Object)
IJavaPeerable.SetPeerReference(JniObjectReference)

Imposta il riferimento all'oggetto JNI usato da questo peer gestito.

(Ereditato da Object)

Metodi di estensione

Nome Descrizione
GetJniTypeName(IJavaPeerable)

Ottiene il nome JNI del tipo dell'istanza selfdi .

JavaAs<TResult>(IJavaPeerable)

Provare a digitare selfTResult, verificando che la coercizione sia valida sul lato Java.

JavaCast<TResult>(IJavaObject)

Esegue una conversione del tipo di tipo controllato dal runtime Android.

JavaCast<TResult>(IJavaObject)

Questa classe fornisce un generatore RNG (Cryptographically Strong Random Number Generator).

TryJavaCast<TResult>(IJavaPeerable, TResult)

Provare a digitare selfTResult, verificando che la coercizione sia valida sul lato Java.

Si applica a