--- title: RandomSource.getRandomValues() slug: Web/API/Crypto/getRandomValues translation_of: Web/API/Crypto/getRandomValues original_slug: Web/API/RandomSource/getRandomValues ---

{{APIRef("Web Crypto API")}}

O método RandomSource.getRandomValues() permite que você obtenha valores criptográficos randômicos. O array passado como parametro é preenchido com números randômicos (randômicos no sentido criptográfico).

Para garantir performance suficiente, as implementações não estão usando um gerador de número randômico de verdade, mas estão usando um gerador de número pseudo-randômico alimentado com um valor com {{Glossary("entropia")}} suficiente. Os PRNG (pseudo-random number generator - gerador de número pseudo-randômico) usados diferem de uma implementação para a outra, mas são adequadas para usos criptográficos. As implementações precisam ter um valor de alimentação com entropia suficiente, como uma fonte de entropia a nível de sistema.

Sintaxe

cryptoObj.getRandomValues(typedArray);

Parâmetros

typedArray
É uma {{jsxref("TypedArray")}} de números inteiros, que pode ser {{jsxref("Int8Array")}}, {{jsxref("Uint8Array")}}, {{jsxref("Uint16Array")}}, {{jsxref("Int32Array")}}, ou {{jsxref("Uint32Array")}}. Todos os elementos no array serão sobrescristos com números randômicos.

Exceções

Exemplo

/* assumindo que window.crypto.getRandomValues está disponível */

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

console.log("Seus números da sorte são:");
for (var i = 0; i < array.length; i++) {
    console.log(array[i]);
}

Especificação

Especificação Estado Comentário
{{SpecName('Web Crypto API', '#RandomSource-method-getRandomValues')}} {{Spec2('Web Crypto API')}} Definição inicial

{{ CompatibilityTable() }}

Feature Chrome Firefox (Gecko) Internet Explorer Opera Safari
Basic support 11.0 {{ webkitbug("22049") }} 21.0 11.0 15.0 3.1
Feature Android Chrome for Android Firefox Mobile (Gecko) IE Mobile Opera Mobile Safari Mobile
Basic support {{ CompatNo() }} 23.0 21.0 11.0 {{ CompatNo() }} 6

Veja também