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("Your lucky numbers:");
for (var i = 0; i < array.length; i++) {
    console.log(array[i]);
}

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

Спецификация Статус Комментарий
Web Cryptography API Кандидат в рекомендации Initial definition

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

Feature Chrome Firefox (Gecko) Internet Explorer Opera Safari
Basic support 11.0 WebKit bug 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 Нет 23.0 21.0 11.0 Нет 6

Смотри также

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

Метки документа и участники

 Внесли вклад в эту страницу: pepeevich
 Обновлялась последний раз: pepeevich,