Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten. Erfahre mehr über dieses Experiment.

View in English Always switch to English

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 ⁨Juli 2015⁩.

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

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

Um ausreichende Leistung zu gewährleisten, verwenden Implementierungen keinen wirklich zufälligen Zahlengenerator, sondern einen Pseudo-Zufallszahlengenerator, der mit einem Wert mit ausreichend Entropie initialisiert ist. Der Algorithmus des Pseudo-Zufallszahlengenerators (PRNG) kann je nach User Agent variieren, ist aber für kryptografische Zwecke geeignet.

getRandomValues() ist das einzige Mitglied des Crypto-Interfaces, das in 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 oder Float64Array). Alle Elemente im Array werden mit Zufallszahlen überschrieben.

Rückgabewert

Dasselbe Array, das als typedArray übergeben wurde, jedoch mit seinem Inhalt ersetzt durch die neu generierten Zufallszahlen. Beachten Sie, dass typedArray direkt geändert wird und keine Kopie erstellt wird.

Ausnahmen

QuotaExceededError

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

Hinweise zur Nutzung

Bevorzugen Sie die generateKey()-Methode zur Schlüsselerzeugung, da garantiert wird, dass sie in einem sicheren Kontext ausgeführt wird.

Es gibt keinen Mindestgrad an Entropie, der durch die Web-Cryptography-Spezifikation vorgeschrieben wird. Stattdessen werden User Agents aufgefordert, bei der Generierung von Zufallszahlen die bestmögliche Entropie zu liefern, wobei ein gut definierter, effizienter Pseudo-Zufallszahlengenerator verwendet wird, der im User Agent selbst integriert ist, jedoch mit Werten initialisiert wird, die aus einer externen Quelle von Pseudo-Zufallszahlen stammen, wie einer plattformspezifischen Zufallszahlfunktion, dem Unix-/dev/urandom-Gerät oder einer anderen Quelle von Zufalls- oder Pseudo-Zufallsdaten.

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