SecureRandom Clase
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
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
- 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 |
Handle |
Identificador de la instancia de Android subyacente. (Heredado de Object) |
InstanceStrong |
Devuelve un objeto |
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 |
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 |
NextFloat() |
Devuelve el siguiente pseudoaleatorio, valor distribuido |
NextGaussian() |
Devuelve el siguiente pseudoaleatorio, valor distribuido |
NextInt() |
Devuelve el siguiente pseudoaleatorio, valor distribuido |
NextInt(Int32) |
Devuelve un pseudoaleatorio, distribuido |
NextLong() |
Devuelve el siguiente pseudoaleatorio, valor distribuido |
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 |
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. |