Crypto.getRandomValues()
Baseline
Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since 2015年7月.
Crypto.getRandomValues() 方法让你可以获取符合密码学要求的安全的随机值。传入参数的数组被随机值填充(在加密意义上的随机)。
为了确保足够的性能,不使用真正的随机数生成器,但是它们正在使用具有足够熵值伪随机数生成器。它所使用的 PRNG 的实现与其他不同,但适用于加密的用途。该实现还需要使用具有足够熵的种子,如系统级熵源。
语法
cryptoObj.getRandomValues(typedArray);
参数
typedArray-
是一个基于整数的
TypedArray,它可以是Int8Array、Uint8Array、Int16Array、Uint16Array、Int32Array或者Uint32Array(不可使用Float32Array或者Float64Array)。在数组中的所有的元素会被随机数重写。(注释:生成的随机数储存在typedArray数组上。)
异常事件
QuotaExceededErrorDOMException-
如果请求的长度超过 65536 字节,则抛出该异常。
例子
js
/* 假设 window.crypto.getRandomValues 可用 */
var array = new Uint32Array(10);
window.crypto.getRandomValues(array);
console.log("Your lucky numbers:");
for (var i = 0; i < array.length; i++) {
console.log(array[i]);
}
标准
| Specification |
|---|
| Web Cryptography Level 2> # Crypto-method-getRandomValues> |
浏览器兼容性
Loading…
参见
- 通过
Window.crypto获取Crypto对象。 Math.random,一个非密码学安全的随机数来源。