SecureRandom Clase

Definición

Esta clase proporciona un generador de números aleatorios (RNG) criptográficomente seguro.

[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
Herencia
Atributos

Comentarios

Esta clase proporciona un generador de números aleatorios (RNG) criptográficomente seguro.

Un número aleatorio criptográficomente seguro cumple mínimamente las pruebas de generador de números aleatorios estadísticos especificadas en FIPS 140-2, Requisitos de seguridad para módulos criptográficoshttp://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.140-2.pdf, sección 4.9.1. Además, SecureRandom debe generar una salida no determinista. Por lo tanto, cualquier material de inicialización pasado a un SecureRandom objeto debe ser impredecible y todas las SecureRandom secuencias de salida deben ser criptográficamente seguras, como se describe en RFC 4086: Requisitos de aleatoriedad para la seguridadhttp://tools.ietf.org/html/rfc4086.

Muchas SecureRandom implementaciones están en forma de generador de números pseudoaleatorios (PRNG, también conocido como generador de bits aleatorios deterministas o DRBG), lo que significa que usan un algoritmo determinista para producir una secuencia pseudoaleatoria a partir de una inicialización aleatoria. Otras implementaciones pueden producir números aleatorios verdaderos y otros pueden usar una combinación de ambas técnicas.

Un autor de llamada obtiene una SecureRandom instancia a través del constructor no-argument o uno de los getInstance métodos. Por ejemplo:

<blockquote>

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

</blockquote>

La tercera instrucción anterior devuelve un SecureRandom objeto del algoritmo específico que admite los parámetros de instancias específicos. Los parámetros efectivos de creación de instancias de la implementación deben coincidir con esta solicitud mínima, pero no necesariamente lo mismo. Por ejemplo, incluso si la solicitud no requiere una determinada característica, la creación de instancias real puede proporcionar la característica. Una implementación puede crear instancias diferir de un SecureRandom hasta que se use realmente, pero los parámetros de instancia efectivos deben determinarse justo después de crearse y #getParameters() siempre deben devolver el mismo resultado sin cambios.

Los autores de llamadas típicos de SecureRandom invocan los métodos siguientes para recuperar bytes aleatorios:

<blockquote>

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

</blockquote>

Los autores de llamadas también pueden invocar el #generateSeed método para generar un número determinado de bytes de inicialización (para inicializar otros generadores de números aleatorios, por ejemplo):

<blockquote>

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

</blockquote>

Un objeto PRNG SecureRandom recién creado no se inicializará (excepto si lo crea #SecureRandom(byte[])). La primera llamada a nextBytes le obligará a inicializarse desde un origen de entropía específico de la implementación. Esta propagación automática no se producirá si setSeed se llamó anteriormente.

Se SecureRandom puede volver a usar en cualquier momento llamando al reseed método o setSeed . El reseed método lee la entrada de entropía de su origen de entropía para volver a crearse. El setSeed método requiere que el autor de la llamada proporcione la inicialización.

Tenga en cuenta que es posible que reseed no sea compatible con todas las SecureRandom implementaciones.

Algunas SecureRandom implementaciones pueden aceptar un SecureRandomParameters parámetro en sus #nextBytes(byte[], SecureRandomParameters) métodos y #reseed(SecureRandomParameters) para controlar aún más el comportamiento de los métodos.

Nota: Según la implementación, los generateSeedmétodos , reseed y nextBytes pueden bloquearse como entropía se recopilan, por ejemplo, si el origen de entropía es /dev/random en varios sistemas operativos similares a Unix.

<Los objetos h2> seguridad <de subprocesos /h2>SecureRandom son seguros para su uso por varios subprocesos simultáneos.

Agregado en la versión 1.1.

Java documentación para java.security.SecureRandom.

Las partes de esta página son modificaciones basadas en el trabajo creado y compartido por el proyecto de código abierto de Android y se usan según los términos descritos en la licencia de atribución de Creative Commons 2.5.

Constructores

Nombre Description
SecureRandom()

Construye un generador de números aleatorios seguro (RNG) que implementa el algoritmo de número aleatorio predeterminado.

SecureRandom(Byte[])

Construye un generador de números aleatorios seguro (RNG) que implementa el algoritmo de número aleatorio predeterminado.

SecureRandom(IntPtr, JniHandleOwnership)

Constructor utilizado al crear representaciones administradas de objetos JNI; llamado por el tiempo de ejecución.

SecureRandom(SecureRandomSpi, Provider)

Crea un objeto SecureRandom.

Propiedades

Nombre Description
Algorithm

Devuelve el nombre del algoritmo implementado por este SecureRandom objeto.

Class

Devuelve la clase en tiempo de ejecución de este Objectobjeto .

(Heredado de Object)
Handle

Identificador de la instancia de Android subyacente.

(Heredado de Object)
InstanceStrong

Devuelve un objeto SecureRandom.

JniIdentityHashCode

Obtiene el código hash de identidad asignado a este Java del mismo nivel por el tiempo de ejecución de interoperabilidad.

(Heredado de Object)
JniManagedPeerState

Esta clase proporciona un generador de números aleatorios (RNG) criptográficomente seguro.

(Heredado de JavaObject)
JniPeerMembers

Esta clase proporciona un generador de números aleatorios (RNG) criptográficomente seguro.

Parameters

Devuelve el valor efectivo SecureRandomParameters de esta SecureRandom instancia.

PeerReference

Obtiene la referencia de objeto JNI para este Java del mismo nivel.

(Heredado de Object)
Provider

Devuelve el proveedor de este SecureRandom objeto.

ThresholdClass

Esta API admite la infraestructura mono para Android y no está pensada para usarse directamente desde el código.

ThresholdType

Esta API admite la infraestructura mono para Android y no está pensada para usarse directamente desde el código.

Métodos

Nombre Description
Clone()

Crea y devuelve una copia de este objeto.

(Heredado de Object)
Construct(JniObjectReference, JniObjectReferenceOptions)

Esta clase proporciona un generador de números aleatorios (RNG) criptográficomente seguro.

(Heredado de JavaObject)
Dispose()

Libera los recursos mantenidos por este Java del mismo nivel.

(Heredado de Object)
Dispose(Boolean)

Libera los recursos mantenidos por este Java del mismo nivel.

(Heredado de Object)
DisposeUnlessReferenced()

Esta clase proporciona un generador de números aleatorios (RNG) criptográficomente seguro.

(Heredado de JavaObject)
Equals(Object)

Esta clase proporciona un generador de números aleatorios (RNG) criptográficomente seguro.

(Heredado de JavaObject)
Equals(Object)

Indica si algún otro objeto es "igual a" este.

(Heredado de Object)
GenerateSeed(Int32)

Devuelve el número especificado de bytes de inicialización, calculado mediante el algoritmo de generación de inicialización que esta clase usa para inicializarse a sí mismo.

GetHashCode()

Devuelve un valor de código hash para el objeto .

(Heredado de Object)
GetInstance(String, ISecureRandomParameters, Provider)

Devuelve un SecureRandom objeto que implementa el algoritmo de generador de números aleatorios (RNG) especificado y admite la solicitud especificada SecureRandomParameters .

GetInstance(String, ISecureRandomParameters, String)

Devuelve un SecureRandom objeto que implementa el algoritmo de generador de números aleatorios (RNG) especificado y admite la solicitud especificada SecureRandomParameters .

GetInstance(String, ISecureRandomParameters)

Devuelve un SecureRandom objeto que implementa el algoritmo de generador de números aleatorios (RNG) especificado y admite la solicitud especificada SecureRandomParameters .

GetInstance(String, Provider)

Devuelve un SecureRandom objeto que implementa el algoritmo de generador de números aleatorios (RNG) especificado.

GetInstance(String, String)

Devuelve un SecureRandom objeto que implementa el algoritmo de generador de números aleatorios (RNG) especificado.

GetInstance(String)

Devuelve un SecureRandom objeto que implementa el algoritmo de generador de números aleatorios (RNG) especificado.

GetSeed(Int32)

Devuelve el número especificado de bytes de inicialización, calculado mediante el algoritmo de generación de inicialización que esta clase usa para inicializarse a sí mismo.

JavaFinalize()

Lo llama el recolector de elementos no utilizados en un objeto cuando la recolección de elementos no utilizados determina que no hay más referencias al objeto .

(Heredado de Object)
Next(Int32)

Genera un entero que contiene el número especificado por el usuario de bits pseudoaleatorios (justificado a la derecha, con ceros iniciales).

NextBoolean()

Devuelve el siguiente pseudoaleatorio, valor distribuido boolean uniformemente de la secuencia del generador de números aleatorios.

(Heredado de Random)
NextBytes(Byte[], ISecureRandomParameters)

Genera un número especificado por el usuario de bytes aleatorios con parámetros adicionales.

NextBytes(Byte[])

Genera bytes aleatorios y los coloca en una matriz de bytes proporcionada por el usuario.

(Heredado de Random)
NextDouble()

Devuelve el siguiente pseudoaleatorio, valor distribuido double uniformemente entre 0.0 y 1.0 desde la secuencia de este generador de números aleatorios.

(Heredado de Random)
NextFloat()

Devuelve el siguiente pseudoaleatorio, valor distribuido float uniformemente entre 0.0 y 1.0 desde la secuencia de este generador de números aleatorios.

(Heredado de Random)
NextGaussian()

Devuelve el siguiente pseudoaleatorio, valor distribuido double gaussiano ("normalmente") con desviación 0.0 media 1.0 y estándar de la secuencia del generador de números aleatorios.

(Heredado de Random)
NextInt()

Devuelve el siguiente pseudoaleatorio, valor distribuido int uniformemente de la secuencia del generador de números aleatorios.

(Heredado de Random)
NextInt(Int32)

Devuelve un pseudoaleatorio, distribuido int uniformemente entre 0 (inclusivo) y el valor especificado (exclusivo), extraído de la secuencia del generador de números aleatorios.

(Heredado de Random)
NextLong()

Devuelve el siguiente pseudoaleatorio, valor distribuido long uniformemente de la secuencia del generador de números aleatorios.

(Heredado de Random)
Notify()

Activa un único subproceso que está esperando en el monitor de este objeto.

(Heredado de Object)
NotifyAll()

Activa todos los subprocesos que están esperando en el monitor de este objeto.

(Heredado de Object)
Reseed()

Vuelve a inicializar esto SecureRandom con la entrada de entropía leída de su origen de entropía.

Reseed(ISecureRandomParameters)

Vuelve a crear esto SecureRandom con la entrada de entropía leída desde su origen de entropía con parámetros adicionales.

SetHandle(IntPtr, JniHandleOwnership)

Establece la propiedad Handle.

(Heredado de Object)
SetPeerReference(JniObjectReference, JniObjectReferenceOptions)

Esta clase proporciona un generador de números aleatorios (RNG) criptográficomente seguro.

(Heredado de JavaObject)
SetSeed(Byte[])

Vuelve a inicializar este objeto aleatorio con la inicialización especificada.

SetSeed(Int64)

Establece la inicialización de este generador de números aleatorios mediante una sola long inicialización.

(Heredado de Random)
ToArray<T>()

Crea una matriz administrada a partir de este contenedor de matriz Java.

(Heredado de Object)
ToString()

Devuelve una representación de cadena del objeto .

(Heredado de Object)
UnregisterFromRuntime()

Anula el registro de este Java del mismo nivel del tiempo de ejecución de interoperabilidad.

(Heredado de Object)
Wait()

Hace que el subproceso actual espere hasta que se despierte, normalmente por ser em notificado/em< o >em<interrumpido>/em<.><>

(Heredado de Object)
Wait(Int64, Int32)

Hace que el subproceso actual espere hasta que se despierte, normalmente por ser <em>notificado</em> o <em>interrumpido</em>, o hasta que haya transcurrido una cierta cantidad de tiempo real.

(Heredado de Object)
Wait(Int64)

Hace que el subproceso actual espere hasta que se despierte, normalmente por ser <em>notificado</em> o <em>interrumpido</em>, o hasta que haya transcurrido una cierta cantidad de tiempo real.

(Heredado de Object)

Implementaciones de interfaz explícitas

Nombre Description
IJavaPeerable.Disposed()

Esta clase proporciona un generador de números aleatorios (RNG) criptográficomente seguro.

(Heredado de JavaObject)
IJavaPeerable.Finalized()

Esta clase proporciona un generador de números aleatorios (RNG) criptográficomente seguro.

(Heredado de JavaObject)
IJavaPeerable.JniObjectReferenceControlBlock

Esta clase proporciona un generador de números aleatorios (RNG) criptográficomente seguro.

(Heredado de JavaObject)
IJavaPeerable.SetJniIdentityHashCode(Int32)

Esta clase proporciona un generador de números aleatorios (RNG) criptográficomente seguro.

(Heredado de JavaObject)
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates)

Esta clase proporciona un generador de números aleatorios (RNG) criptográficomente seguro.

(Heredado de JavaObject)
IJavaPeerable.SetPeerReference(JniObjectReference)

Esta clase proporciona un generador de números aleatorios (RNG) criptográficomente seguro.

(Heredado de JavaObject)
IJavaPeerable.UnregisterFromRuntime()

Esta clase proporciona un generador de números aleatorios (RNG) criptográficomente seguro.

(Heredado de Random)

Métodos de extensión

Nombre Description
GetJniTypeName(IJavaPeerable)

Obtiene el nombre JNI del tipo de la instancia self.

JavaAs<TResult>(IJavaPeerable)

Intente coerción self para escribir TResult, comprobando que la coerción es válida en el lado de Java.

JavaCast<TResult>(IJavaObject)

Realiza una conversión de tipos comprobados en tiempo de ejecución de Android.

JavaCast<TResult>(IJavaObject)

Esta clase proporciona un generador de números aleatorios (RNG) criptográficomente seguro.

TryJavaCast<TResult>(IJavaPeerable, TResult)

Intente coerción self para escribir TResult, comprobando que la coerción es válida en el lado de Java.

Se aplica a