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
getRandomValues(typedArray)
Parameter
typedArray
-
Ein integer-basiertes
TypedArray
, das eines der folgenden ist:Int8Array
,Uint8Array
,Uint8ClampedArray
,Int16Array
,Uint16Array
,Int32Array
,Uint32Array
,BigInt64Array
,BigUint64Array
(aber nichtFloat16Array
,Float32Array
oderFloat64Array
). 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
vontypedArray
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
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
Loading…
Siehe auch
- Web Crypto API
Math.random
, eine nicht-kryptografische Quelle von Zufallszahlen.