Crypto: getRandomValues() Methode

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.

Hinweis: Diese Funktion ist in Web Workers verfügbar.

Die Crypto.getRandomValues() Methode ermöglicht es Ihnen, kryptographisch starke Zufallswerte zu erhalten. Das als Parameter übergebene Array wird mit Zufallszahlen im kryptographischen Sinn gefüllt.

Um eine ausreichende Leistung sicherzustellen, verwenden Implementierungen keinen echten Zufallszahlengenerator, sondern einen Pseudo-Zufallszahlengenerator, der mit einem Wert mit ausreichend Entropie initialisiert wird. Der Algorithmus für den Pseudo-Zufallszahlengenerator (PRNG) kann bei verschiedenen User Agents variieren, ist aber für kryptographische Zwecke geeignet.

getRandomValues() ist das einzige Mitglied des Crypto Interface, das aus einem unsicheren Kontext verwendet werden kann.

Syntax

js
getRandomValues(typedArray)

Parameter

typedArray

Ein integer-basiertes TypedArray, das eines der folgenden ist: Int8Array, Uint8Array, Uint8ClampedArray, Int16Array, Uint16Array, Int32Array, Uint32Array, BigInt64Array, BigUint64Array (aber nicht Float16Array, Float32Array noch Float64Array). Alle Elemente im Array werden mit Zufallszahlen überschrieben.

Rückgabewert

Das gleiche übergebene Array als typedArray, jedoch mit seinem Inhalt, der durch die neu generierten Zufallszahlen ersetzt wurde. Beachten Sie, dass typedArray direkt verändert wird und keine Kopie erstellt wird.

Ausnahmen

QuotaExceededError DOMException

Wird ausgelöst, wenn die byteLength von typedArray 65.536 überschreitet.

Hinweise zur Verwendung

Für die Schlüsselgenerierung bevorzugen Sie die Methode generateKey(), die garantiert in einem sicheren Kontext ausgeführt wird.

Es gibt keinen durch die Web-Kryptographie-Spezifikation vorgeschriebenen Mindestgrad an Entropie. User Agents werden jedoch dazu angehalten, die bestmögliche Entropie beim Generieren von Zufallszahlen bereitzustellen, indem sie einen gut definierten, effizienten Pseudo-Zufallszahlengenerator verwenden, der in den User Agent selbst integriert ist und mit Werten initialisiert wird, die aus einer externen Quelle von Pseudozufallszahlen stammen, wie beispielsweise eine plattformspezifische Zufallszahlenfunktion, das Unix /dev/urandom Gerät oder eine andere Quelle von zufälligen oder pseudozufälligen Daten.

Beispiele

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

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

Spezifikationen

Specification
Web Cryptography Level 2
# Crypto-method-getRandomValues

Browser-Kompatibilität

Siehe auch