Crypto.getRandomValues()

El método Crypto.getRandomValues() permite obtener valores aleatorios criptográficamente fuertes. El array que se pasa como parámetro se rellena con números aleatorios (entiéndase aleatorios en el sentido criptográfico).

Con el fin de garantizar un rendimiento razonable, las distintas implementaciones no utilizan un generador de numeros aleatorios puro, sino que utilizan un generador numérico pseudo-aleatorio, sembrado con un valor con suficiente entropía. Los generadores numéricos pseudo-aleatorios utilizados difieren entre user agents, pero son adecuados para usos criptográficos. Se require también que las distintas implementaciones usen una semilla con suficiente entropía, como una fuente de entropía a nivel de sistema.

Sintaxis

cryptoObj.getRandomValues(typedArray);

Parámetros

typedArray
Es un entero TypedArray, que puede ser un Int8Array, un Uint8Array, un Int16Array, un Uint16Array, un Int32Array, o un Uint32Array. Todos los elementos dentro del array seran sobreescritos con números aleatorios.

Excepciones

Ejemplo

/* Asumiendo que window.crypto.getRandomValues está disponible */

var array = new Uint32Array(10);
window.crypto.getRandomValues(array);

console.log("Tus numeros de la suerte:");
for (var i = 0; i < array.length; i++) {
    console.log(array[i]);
}

Especificación

Especificación Estado Comentario
Web Cryptography API Recommendation Definición Inicial

Compatibilidad del navegador

La tabla de compatibilidad de esta página se genera a partir de datos estructurados. Si desea contribuir a los datos, por favor, compruebe https://github.com/mdn/browser-compat-data y envianos un pull request.

Update compatibility data on GitHub
DesktopMobile
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewChrome para AndroidFirefox para AndroidOpera para AndroidSafari en iOSSamsung Internet
getRandomValues()Chrome Soporte completo 11Edge Soporte completo 12Firefox Soporte completo 26IE Soporte completo 11Opera Soporte completo 15Safari Soporte completo 6.1WebView Android Soporte completo ≤37Chrome Android Soporte completo 18Firefox Android Soporte completo 26Opera Android Soporte completo 14Safari iOS Soporte completo 6.1Samsung Internet Android Soporte completo 1.0

Leyenda

Soporte completo  
Soporte completo

Ver también