如果浏览器不支持crypto.getRandomValues()
方法,可以使用其他方法来生成随机数。以下是一个示例解决方案:
function getRandomValues(array) {
for (var i = 0; i < array.length; i++) {
array[i] = Math.floor(Math.random() * 256);
}
return array;
}
这个函数接受一个Uint8Array
类型的数组作为参数,并返回填充有随机值的数组。它使用Math.random()
方法来生成每个元素的随机数,然后将其乘以256并取整,以确保生成的值在0到255之间。
要使用这个函数来替代crypto.getRandomValues()
,只需将代码中的crypto.getRandomValues()
替换为getRandomValues()
:
var array = new Uint8Array(16);
getRandomValues(array);
console.log(array);
这将生成一个长度为16的Uint8Array
类型的数组,并填充随机值。你可以将其用于你需要的任何场景中。请注意,这种方法生成的随机数可能不够安全,如果你需要高度安全的随机数,请尝试寻找其他替代方案。