SecureRandom Clase

Definición

Esta clase proporciona un generador de números aleatorios (RNG) criptográficamente 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
SecureRandom
Atributos

Comentarios

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

Un número aleatorio criptográficomente seguro cumple mínimamente las pruebas del generador de números aleatorios estadísticos especificados en FIPS 140-2, Requisitos de seguridad para módulos criptográficoshttp://csrc.nist.gov/cryptval/140-2.htm, 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 objeto SecureRandom debe ser impredecible y todas las secuencias de salida SecureRandom deben ser criptográficamente seguras, como se describe en RFC 1750: Randomness Recommendations for Securityhttp://www.ietf.org/rfc/rfc1750.txt.

Un llamador obtiene una instancia secureRandom a través del constructor sin argumentos o uno de los getInstance métodos:

SecureRandom random = new SecureRandom();

Muchas implementaciones secureRandom están en forma de generador de números pseudoaleatorios (PRNG), lo que significa que usan un algoritmo determinista para generar una secuencia pseudoaleatoria a partir de una inicialización aleatoria verdadera. Otras implementaciones pueden producir números aleatorios verdaderos y, sin embargo, otros pueden usar una combinación de ambas técnicas.

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

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

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):

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

Nota: Según la implementación, los generateSeed métodos y nextBytes pueden bloquearse como entropía se recopilan, por ejemplo, si necesitan leer desde /dev/random en varios sistemas operativos similares a Unix.

El algoritmo de SHA1PRNG del proveedor crypto ha quedado en desuso, ya que no era seguro y también se ha usado incorrectamente por algunas aplicaciones como una función de derivación de claves. Consulte El proveedor "Crypto" de seguridad en desuso en Android N para obtener más información.

Documentación de Java 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 Project y que se usan según los términos Creative Commons 2.5 Attribution License.

Constructores

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

Algorithm

Devuelve el nombre del algoritmo implementado por este objeto SecureRandom.

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

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

(Heredado de Object)
JniPeerMembers

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

PeerReference

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

(Heredado de Object)
Provider

Devuelve el proveedor de este objeto SecureRandom.

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

Clone()

Crea y devuelve una copia de este objeto.

(Heredado de Object)
Dispose()

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

(Heredado de Object)
Dispose(Boolean)

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

(Heredado de Object)
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.

GetHashCode()

Devuelve un valor de código hash del objeto.

(Heredado de Object)
GetInstance(String)

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

GetInstance(String, Provider)

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

GetInstance(String, String)

Devuelve un objeto SecureRandom 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.

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 pseudoalealeadores (justificado a la derecha, con ceros iniciales).

NextBoolean()

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

(Heredado de Random)
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 media 0.0 y desviación 1.0 estándar de esta secuencia del generador de números aleatorios.

(Heredado de Random)
NextInt()

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

(Heredado de Random)
NextInt(Int32)

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

(Heredado de Random)
NextLong()

Devuelve el siguiente pseudoaleatorio, valor distribuido long uniformemente de la secuencia de este 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)
SetHandle(IntPtr, JniHandleOwnership)

Establece la propiedad Handle.

(Heredado de Object)
SetSeed(Byte[])

Vuelve a inicializar este objeto aleatorio.

SetSeed(Int64)

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

(Heredado de Random)
ToArray<T>()

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

(Heredado de Object)
ToString()

Devuelve una representación de cadena del objeto.

(Heredado de Object)
UnregisterFromRuntime()

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

(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)

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, 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)

Implementaciones de interfaz explícitas

IJavaPeerable.Disposed()

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

(Heredado de Object)
IJavaPeerable.DisposeUnlessReferenced()

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

(Heredado de Object)
IJavaPeerable.Finalized()

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

(Heredado de Object)
IJavaPeerable.JniManagedPeerState

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

(Heredado de Object)
IJavaPeerable.SetJniIdentityHashCode(Int32)

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

(Heredado de Object)
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates)

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

(Heredado de Object)
IJavaPeerable.SetPeerReference(JniObjectReference)

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

(Heredado de Object)

Métodos de extensión

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áficamente seguro.

GetJniTypeName(IJavaPeerable)

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

Se aplica a