SecureRandom Classe
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
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
- 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 |
Propriétés
| Nom | Description |
|---|---|
| Algorithm |
Retourne le nom de l’algorithme implémenté par cet |
| Class |
Retourne la classe runtime de ce |
| Handle |
Handle de l’instance Android sous-jacente. (Hérité de Object) |
| InstanceStrong |
Renvoie un objet |
| 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 |
| 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 |
| 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 |
| GetInstance(String, ISecureRandomParameters, String) |
Retourne un |
| GetInstance(String, ISecureRandomParameters) |
Retourne un |
| GetInstance(String, Provider) |
Retourne un |
| GetInstance(String, String) |
Retourne un |
| GetInstance(String) |
Retourne un |
| 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 |
| 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 |
| NextFloat() |
Retourne la pseudorandom suivante, uniformément distribuée |
| NextGaussian() |
Retourne la valeur distribuée |
| NextInt() |
Retourne la valeur pseudo-random suivante, uniformément distribuée |
| NextInt(Int32) |
Retourne un pseudo-random, une valeur distribuée |
| NextLong() |
Retourne la valeur pseudo-random suivante, uniformément distribuée |
| 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 |
| Reseed(ISecureRandomParameters) |
Reseeds ceci |
| 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 |
| 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 |
| JavaAs<TResult>(IJavaPeerable) |
Essayez de forcer |
| 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 |