Spec-Zone.ru › Web APIs

Crypto: метод getRandomValues()

Базовая Широко доступная

Эта функция хорошо зарекомендовала себя и работает на многих устройствах и версиях браузеров. Она доступна во всех браузерах с июля 2015 года.

  • Подробнее
  • Полная совместимость
  • Отправить отзыв

Примечание: Эта функция доступна в Потоках выполнения.

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

Для обеспечения достаточной производительности реализации не используют генератор истинно случайных чисел, а используют псевдослучайный генератор, инициализированный значением с достаточной энтропией. Алгоритм псевдослучайного генератора (PRNG) может отличаться в зависимости от браузера, но подходит для криптографических целей.

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

Синтаксис

getRandomValues(typedArray)

Параметры

typedArray

Массив на основе целых чисел TypedArray, который является одним из: Int8Array, Uint8Array, Uint8ClampedArray, Int16Array, Uint16Array, Int32Array, Uint32Array, BigInt64Array, BigUint64Array (но не Float32Array ни Float64Array). Все элементы массива будут перезаписаны случайными числами.

Возвращаемое значение

Тот же массив, что и typedArray, но с его содержимым, заменённым на новые сгенерированные случайные числа. Обратите внимание, что typedArray изменяется на месте, и не создаётся копия.

Исключения

QuotaExceededError DOMException

Выбрасывается, если byteLength typedArray превышает 65 536.

Примечания к использованию

Для генерации ключей предпочтительнее использовать метод generateKey(), который гарантированно выполняется в безопасном контексте.

Спецификация Web Cryptography не требует минимального уровня энтропии. Вместо этого, браузеры должны обеспечить наилучшую энтропию при генерации случайных чисел, используя хорошо определенный, эффективный псевдослучайный генератор, встроенный в сам браузер, но инициализированный значениями из внешнего источника псевдослучайных чисел, такого как платформа-специфическая функция генерации случайных чисел, устройство Unix /dev/urandom, или другой источник случайных или псевдослучайных данных.

Примеры

const array = new Uint32Array(10);
self.crypto.getRandomValues(array);

console.log("Your lucky numbers:");
for (const num of array) {
  console.log(num);
}

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

Спецификация
Web Cryptography API
# Crypto-method-getRandomValues

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

Рабочие столы Мобильные устройства
Chrome Edge Firefox Opera Safari Chrome Android Firefox для Android Opera Android Safari на iOS Samsung Internet WebView Android
getRandomValues 11 12 21 15 5 18 21 14 5 1.0 ≤37

См. также

  • API криптографии веб-браузера
  • Math.random, некриптографический источник случайных чисел.

© 2005–2024 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/Crypto/getRandomValues

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API