RandomSource.getRandomValues()

La méthode RandomSource.getRandomValues() permet d’obtenir des valeurs pseudo-aléatoires cryptographiquement satisfaisantes. Le tableau donné en paramètre est rempli avec des nombres pseudo-aléatoires.

Pour garantir une performance suffisante, les implémentations n’utilisent pas un vrai générateur de nombres aléatoires, mais un générateur de nombres pseudo-aléatoires semé avec une valeur ayant suffisamment d'entropie. Les générateurs utilisés d’une implémentation à une autre seront différents mais toujours satisfaisants pour une utilisation en cryptographie. Les implémentations doivent également utiliser une graine ayant suffisamment d’entropie, comme une source d’entropie au niveau du système.

Syntaxe

cryptoObj.getRandomValues(typedArray);

Paramètres

typedArray
Un TypedArray de nombres entiers, qui est un Int8Array, un Uint8Array, un Uint16Array, un Int32Array, ou encore un Uint32Array. Tous les éléments du tableau seront subsitués avec des nombres aléatoires.

Exceptions

Exemple

/* on part du principe ici que window.crypto.getRandomValues est disponible */

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

console.log("Your lucky numbers:");
for (var i = 0; i < array.length; i++) {
    console.log(array[i]);
}

Spécification

Specification Status Comment
Web Cryptography API Recommendation Initial definition

Compatibilité des navigateurs

Update compatibility data on GitHub
OrdinateurMobile
ChromeEdgeFirefoxInternet ExplorerOperaSafariWebview AndroidChrome pour AndroidFirefox pour AndroidOpera pour AndroidSafari sur iOSSamsung Internet
getRandomValues()Chrome Support complet 11Edge Support complet 12Firefox Support complet 26IE Support complet 11Opera Support complet 15Safari Support complet 6.1WebView Android Support complet ≤37Chrome Android Support complet 18Firefox Android Support complet 26Opera Android Support complet 14Safari iOS Support complet 6.1Samsung Internet Android Support complet 1.0

Légende

Support complet  
Support complet

Voir aussi