RandomSource.getRandomValues()
Baseline Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.
Метод 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]);
}
Спецификации
Specification |
---|
Web Cryptography API # Crypto-method-getRandomValues |
Совместимость с браузерами
BCD tables only load in the browser
Смотрите также
Window.crypto
чтобы получить объектCrypto
.Math.random
, не криптографический способ получения случайных чисел.