function randoms(min, max) {
return Math.floor(Math.random() * (max - min + 1) + min)
}
function getRandomValues(buf) {
var min = 0,
max = 255;
if (buf.length > 65536) {
var e = new Error();
e.code = 22;
e.message = 'Failed to execute \'getRandomValues\' : The ' + 'ArrayBufferView\'s byte length (' + buf.length + ') exceeds the ' + 'number of bytes of entropy available via this API (65536).';
e.name = 'QuotaExceededError';
throw e;
}
if (buf instanceof Uint16Array) {
max = 65535;
} else if (buf instanceof Uint32Array) {
max = 4294967295;
}
for (var element in buf) {
buf[element] = randoms(min, max);
}
return buf;
}
例子
var K = new Uint32Array(256);
for (getRandomValues(K), G = 0; G < K.length; ++G)
console.log(K[G])
js逆向 模拟window.Crypto.getRandomValuesfunction randoms(min, max) { return Math.floor(Math.random() * (max - min + 1) + min)}function getRandomValues(buf) { var min = 0, max = 255; if (buf.length > 65536) { var e = new Error();