Crypto: getRandomValues() 方法
注意:此功能在 Web Workers 中可用。
Crypto.getRandomValues() 方法可讓您獲取加密強度的隨機值。作為引數傳入的陣列將填充隨機數字(在密碼學意義上的隨機)。
為保證足夠的效能,實現並非使用真正的隨機數生成器,而是使用一個以具有足夠熵的值為種子的偽隨機數生成器。偽隨機數生成器演算法(PRNG)可能因 使用者代理 而異,但適用於加密目的。
getRandomValues() 是 Crypto 介面中唯一可以在不安全上下文中使用的成員。
語法
getRandomValues(typedArray)
引數
typedArray-
一個基於整數的
TypedArray,它是以下型別之一:Int8Array、Uint8Array、Uint8ClampedArray、Int16Array、Uint16Array、Int32Array、Uint32Array、BigInt64Array、BigUint64Array(但不包括Float16Array、Float32Array或Float64Array)。陣列中的所有元素都將被新的隨機數覆蓋。
返回值
傳入的 typedArray 相同,但其內容已被新生成的隨機數替換。請注意,typedArray 是就地修改的,不會建立副本。
異常
QuotaExceededError-
如果
typedArray的byteLength超過 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 加密級別 2 # Crypto-method-getRandomValues |
瀏覽器相容性
載入中…
另見
- Web Crypto API
Math.random,一個非加密的隨機數源。