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
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
nochFloat64Array
). 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
vontypedArray
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
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
- Web Crypto API
Math.random
, eine nicht-kryptographische Quelle für Zufallszahlen.