SecureRandom Classe

Définition

Cette classe fournit un générateur de nombres aléatoires fort par chiffrement (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
Héritage
SecureRandom
Attributs

Remarques

Cette classe fournit un générateur de nombres aléatoires fort par chiffrement (RNG).

Un nombre aléatoire fort par chiffrement est minimalement conforme aux tests statistiques du générateur de nombres aléatoires spécifiés dans FIPS 140-2, exigences de sécurité pour les moduleshttp://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.140-2.pdf de chiffrement, section 4.9.1. En outre, SecureRandom doit produire une sortie non déterministe. Par conséquent, tout matériau de départ passé à un SecureRandom objet doit être imprévisible et toutes les SecureRandom séquences de sortie doivent être fortes par chiffrement, comme décrit dans RFC 4086 : Exigences de randomness pour la sécuritéhttp://tools.ietf.org/html/rfc4086.

De nombreuses SecureRandom implémentations sont sous la forme d’un générateur de nombres pseudo-aléatoires (PRNG, également appelé générateur de bits aléatoires déterministes ou DRBG), ce qui signifie qu’ils utilisent un algorithme déterministe pour produire une séquence pseudo-aléatoire à partir d’une valeur initiale aléatoire. D’autres implémentations peuvent produire de vrais nombres aléatoires, et d’autres peuvent encore utiliser une combinaison des deux techniques.

Un appelant obtient une SecureRandom instance via le constructeur sans argument ou l’une des getInstance méthodes. Par exemple:

<blockquote>

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

</blockquote>

La troisième instruction ci-dessus retourne un SecureRandom objet de l’algorithme spécifique prenant en charge les paramètres d’instanciation spécifiques. Les paramètres instanciés effectifs de l’implémentation doivent correspondre à cette requête minimale, mais ce n’est pas nécessairement le même. Par exemple, même si la requête ne nécessite pas de fonctionnalité spécifique, l’instanciation réelle peut fournir la fonctionnalité. Une implémentation peut instancier de manière différée un SecureRandom jusqu’à ce qu’elle soit réellement utilisée, mais les paramètres d’instanciation effective doivent être déterminés juste après sa création et #getParameters() doivent toujours retourner le même résultat inchangé.

Les appelants classiques d’appeler SecureRandom les méthodes suivantes pour récupérer des octets aléatoires :

<blockquote>

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

</blockquote>

Les appelants peuvent également appeler la #generateSeed méthode pour générer un nombre donné d’octets de départ (pour amorçage d’autres générateurs de nombres aléatoires, par exemple) :

<blockquote>

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

</blockquote>

Un objet PRNG SecureRandom nouvellement créé n’est pas amorçage (sauf s’il est créé par #SecureRandom(byte[])). Le premier appel à nextBytes forcer l’amorçage à partir d’une source d’entropie spécifique à l’implémentation. Cette auto-amorçage ne se produit pas si setSeed elle a été appelée précédemment.

Un SecureRandom peut être reseed à tout moment en appelant ou reseedsetSeed méthode. La reseed méthode lit l’entrée entropie de sa source d’entropie pour se réinsérer. La setSeed méthode exige que l’appelant fournisse la valeur initiale.

Notez que reseed toutes les SecureRandom implémentations peuvent ne pas prendre en charge.

Certaines SecureRandom implémentations peuvent accepter un SecureRandomParameters paramètre dans ses #nextBytes(byte[], SecureRandomParameters) méthodes pour #reseed(SecureRandomParameters) contrôler davantage le comportement des méthodes.

Remarque : Selon l’implémentation, les méthodes et nextBytes les generateSeedreseed méthodes peuvent bloquer en tant qu’entropie en cours de collecte, par exemple, si la source d’entropie est /dev/random sur différents systèmes d’exploitation unix.

<Les objets h2> Thread safety </h2>SecureRandom sont sécurisés pour être utilisés par plusieurs threads simultanés.

Ajouté dans la version 1.1.

Java documentation pour java.security.SecureRandom.

Les parties de cette page sont des modifications basées sur le travail créé et partagé par Android Open Source et utilisées en fonction des termes décrits dans la Creative Commons 2.5 Attribution License.

Constructeurs

Nom Description
SecureRandom()

Construit un générateur de nombres aléatoires sécurisé (RNG) implémentant l’algorithme de nombre aléatoire par défaut.

SecureRandom(Byte[])

Construit un générateur de nombres aléatoires sécurisé (RNG) implémentant l’algorithme de nombre aléatoire par défaut.

SecureRandom(IntPtr, JniHandleOwnership)

Constructeur utilisé lors de la création de représentations managées d’objets JNI ; appelée par le runtime.

SecureRandom(SecureRandomSpi, Provider)

Crée un objet SecureRandom.

Propriétés

Nom Description
Algorithm

Retourne le nom de l’algorithme implémenté par cet SecureRandom objet.

Class

Retourne la classe runtime de ce Object.

(Hérité de Object)
Handle

Handle de l’instance Android sous-jacente.

(Hérité de Object)
InstanceStrong

Renvoie un objet SecureRandom.

JniIdentityHashCode

Cette classe fournit un générateur de nombres aléatoires fort par chiffrement (RNG).

(Hérité de Object)
JniPeerMembers

Cette classe fournit un générateur de nombres aléatoires fort par chiffrement (RNG).

Parameters

Retourne l’effet SecureRandomParameters de cette SecureRandom instance.

PeerReference

Cette classe fournit un générateur de nombres aléatoires fort par chiffrement (RNG).

(Hérité de Object)
Provider

Retourne le fournisseur de cet SecureRandom objet.

ThresholdClass

Cette API prend en charge l’infrastructure Mono pour Android et n’est pas destinée à être utilisée directement à partir de votre code.

ThresholdType

Cette API prend en charge l’infrastructure Mono pour Android et n’est pas destinée à être utilisée directement à partir de votre code.

Méthodes

Nom Description
Clone()

Crée et retourne une copie de cet objet.

(Hérité de Object)
Dispose()

Cette classe fournit un générateur de nombres aléatoires fort par chiffrement (RNG).

(Hérité de Object)
Dispose(Boolean)

Cette classe fournit un générateur de nombres aléatoires fort par chiffrement (RNG).

(Hérité de Object)
Equals(Object)

Indique si un autre objet est « égal à » celui-ci.

(Hérité de Object)
GenerateSeed(Int32)

Retourne le nombre donné d’octets d’amorçage, calculé à l’aide de l’algorithme de génération de départ utilisé par cette classe pour s’amorçage lui-même.

GetHashCode()

Retourne une valeur de code de hachage pour l’objet.

(Hérité de Object)
GetInstance(String, ISecureRandomParameters, Provider)

Retourne un SecureRandom objet qui implémente l’algorithme RNG (Random Number Generator) spécifié et prend en charge la requête spécifiée SecureRandomParameters .

GetInstance(String, ISecureRandomParameters, String)

Retourne un SecureRandom objet qui implémente l’algorithme RNG (Random Number Generator) spécifié et prend en charge la requête spécifiée SecureRandomParameters .

GetInstance(String, ISecureRandomParameters)

Retourne un SecureRandom objet qui implémente l’algorithme RNG (Random Number Generator) spécifié et prend en charge la requête spécifiée SecureRandomParameters .

GetInstance(String, Provider)

Retourne un SecureRandom objet qui implémente l’algorithme RNG (Random Number Generator) spécifié.

GetInstance(String, String)

Retourne un SecureRandom objet qui implémente l’algorithme RNG (Random Number Generator) spécifié.

GetInstance(String)

Retourne un SecureRandom objet qui implémente l’algorithme RNG (Random Number Generator) spécifié.

GetSeed(Int32)

Retourne le nombre donné d’octets d’amorçage, calculé à l’aide de l’algorithme de génération de départ utilisé par cette classe pour s’amorçage lui-même.

JavaFinalize()

Appelé par le garbage collector sur un objet lorsque le garbage collection détermine qu’il n’y a plus de références à l’objet.

(Hérité de Object)
Next(Int32)

Génère un entier contenant le nombre spécifié par l’utilisateur de bits pseudo-aléatoires (justifiés à droite, avec des zéros non significatifs).

NextBoolean()

Retourne la valeur pseudo-random suivante, uniformément distribuée boolean à partir de la séquence du générateur de nombres aléatoires.

(Hérité de Random)
NextBytes(Byte[], ISecureRandomParameters)

Génère un nombre spécifié par l’utilisateur d’octets aléatoires avec des paramètres supplémentaires.

NextBytes(Byte[])

Génère des octets aléatoires et les place dans un tableau d’octets fourni par l’utilisateur.

(Hérité de Random)
NextDouble()

Retourne la pseudorandom suivante, uniformément distribuée double entre 0.0 et 1.0 à partir de la séquence du générateur de nombres aléatoires.

(Hérité de Random)
NextFloat()

Retourne la pseudorandom suivante, uniformément distribuée float entre 0.0 et 1.0 à partir de la séquence du générateur de nombres aléatoires.

(Hérité de Random)
NextGaussian()

Retourne la valeur distribuée double pseudorandom suivante, Gaussian (« normalement ») avec la moyenne 0.0 et l’écart 1.0 type de la séquence de ce générateur de nombres aléatoires.

(Hérité de Random)
NextInt()

Retourne la valeur pseudo-random suivante, uniformément distribuée int à partir de la séquence du générateur de nombres aléatoires.

(Hérité de Random)
NextInt(Int32)

Retourne un pseudo-random, une valeur distribuée int uniformément entre 0 (inclus) et la valeur spécifiée (exclusive), tirée de la séquence de ce générateur de nombres aléatoires.

(Hérité de Random)
NextLong()

Retourne la valeur pseudo-random suivante, uniformément distribuée long à partir de la séquence du générateur de nombres aléatoires.

(Hérité de Random)
Notify()

Réveille un thread unique qui attend le moniteur de cet objet.

(Hérité de Object)
NotifyAll()

Réveille tous les threads qui attendent le moniteur de cet objet.

(Hérité de Object)
Reseed()

Reseeds ceci SecureRandom avec l’entrée entropie lue à partir de sa source d’entropie.

Reseed(ISecureRandomParameters)

Reseeds ceci SecureRandom avec l’entrée entropie lue à partir de sa source d’entropie avec des paramètres supplémentaires.

SetHandle(IntPtr, JniHandleOwnership)

Définit la propriété Handle.

(Hérité de Object)
SetSeed(Byte[])

Reseed cet objet aléatoire avec la valeur initiale donnée.

SetSeed(Int64)

Définit la valeur initiale de ce générateur de nombres aléatoires à l’aide d’une valeur initiale unique long .

(Hérité de Random)
ToArray<T>()

Cette classe fournit un générateur de nombres aléatoires fort par chiffrement (RNG).

(Hérité de Object)
ToString()

Retourne une représentation sous forme de chaîne de l’objet.

(Hérité de Object)
UnregisterFromRuntime()

Cette classe fournit un générateur de nombres aléatoires fort par chiffrement (RNG).

(Hérité de Object)
Wait()

Provoque l’attente du thread actuel jusqu’à ce qu’il soit réveillé, généralement en étant <averti par em ou><em>interrompu</em>.<>

(Hérité de Object)
Wait(Int64, Int32)

Provoque l’attente du thread actuel jusqu’à ce qu’il soit réveillé, généralement en étant <averti> par< em>ou <em>interrompu/em<,> ou jusqu’à ce qu’une certaine quantité de temps réel s’est écoulée.

(Hérité de Object)
Wait(Int64)

Provoque l’attente du thread actuel jusqu’à ce qu’il soit réveillé, généralement en étant <averti> par< em>ou <em>interrompu/em<,> ou jusqu’à ce qu’une certaine quantité de temps réel s’est écoulée.

(Hérité de Object)

Implémentations d’interfaces explicites

Nom Description
IJavaPeerable.Disposed()

Cette classe fournit un générateur de nombres aléatoires fort par chiffrement (RNG).

(Hérité de Object)
IJavaPeerable.DisposeUnlessReferenced()

Cette classe fournit un générateur de nombres aléatoires fort par chiffrement (RNG).

(Hérité de Object)
IJavaPeerable.Finalized()

Cette classe fournit un générateur de nombres aléatoires fort par chiffrement (RNG).

(Hérité de Object)
IJavaPeerable.JniManagedPeerState

Cette classe fournit un générateur de nombres aléatoires fort par chiffrement (RNG).

(Hérité de Object)
IJavaPeerable.SetJniIdentityHashCode(Int32)

Cette classe fournit un générateur de nombres aléatoires fort par chiffrement (RNG).

(Hérité de Object)
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates)

Cette classe fournit un générateur de nombres aléatoires fort par chiffrement (RNG).

(Hérité de Object)
IJavaPeerable.SetPeerReference(JniObjectReference)

Cette classe fournit un générateur de nombres aléatoires fort par chiffrement (RNG).

(Hérité de Object)

Méthodes d’extension

Nom Description
GetJniTypeName(IJavaPeerable)

Obtient le nom JNI du type de l’instance self.

JavaAs<TResult>(IJavaPeerable)

Essayez de forcer self le typeTResult, en vérifiant que le forçage est valide côté Java.

JavaCast<TResult>(IJavaObject)

Effectue une conversion de type vérifiée par le runtime Android.

JavaCast<TResult>(IJavaObject)

Cette classe fournit un générateur de nombres aléatoires fort par chiffrement (RNG).

TryJavaCast<TResult>(IJavaPeerable, TResult)

Essayez de forcer self le typeTResult, en vérifiant que le forçage est valide côté Java.

S’applique à