RandomSource.getRandomValues()

Метод RandomSource.getRandomValues() позволяет вам получать криптографически стойкие числа. Массив, переданный как параметр, заполняется случайными числами (случайными в криптографическом смысле).

Для того, чтобы гарантировать достаточную производительность, реализации используют не настоящий генератор случайных чисел (RNG, en - Random Number Generator), а генератор псевдо-случайных чисел, которому предоставлено начальное зерно (wiki - https://en.wikipedia.org/wiki/Random_seed) с достаточной энтропией (http://cryptography.ru/ref/энтропия). Реализация генератора псевдо-случайных чисел (PRNG, en - PseudoRandom Number Generator) отличается от других реализаций RNG, но она больше подходит для использования в криптографии. Реализации также требуют использование начального зерна с достаточной энтропией, как источник системно-уровневой энтропии.

Синтаксис

cryptoObj.getRandomValues(typedArray);

Параметры

typedArray
Целочисленный массив TypedArray, например Int8Array, Uint8Array, Uint16Array, Int32Array, или Uint32Array. Все элементы массива замещаются случайными числами.

Исключения

  • Исключение QuotaExceededError DOMException выбрасывается если запрошенная длина больше чем 65536 байт.

Пример

/* Предполагается что функция window.crypto.getRandomValues доступна */

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

console.log("Ваше счастливое число:");
for (var i = 0; i < array.length; i++) {
    console.log(array[i]);
}

Спецификация

Спецификация Статус Комментарий
Web Cryptography API Рекомендация Изначальное определение

Совместимость с браузерами

Update compatibility data on GitHub
КомпьютерыМобильные
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewChrome для AndroidFirefox для AndroidOpera для AndroidSafari on iOSSamsung Internet
getRandomValuesChrome Полная поддержка 11Edge Полная поддержка 12Firefox Полная поддержка 26IE Полная поддержка 11Opera Полная поддержка 15Safari Полная поддержка 6.1WebView Android Полная поддержка ДаChrome Android Полная поддержка 18Firefox Android Полная поддержка 26Opera Android Полная поддержка 14Safari iOS Полная поддержка 6.1Samsung Internet Android Полная поддержка Да

Легенда

Полная поддержка  
Полная поддержка

Смотрите также

  • Window.crypto чтобы получить объект Crypto.
  • Math.random, не криптографический способ получения случайных чисел.