javaScript window.crypto.getRandomvalues在safari浏览器中不起作用

javaScript window.crypto.getRandomvalues is not working in safari browser

本文关键字:浏览器 不起作用 safari window crypto getRandomvalues javaScript      更新时间:2023-09-26

你能帮我解决问题吗。我使用了javaScript window.crypto.getRandomvalues函数,它适用于除safari web浏览器和我的safari浏览器版本5.1.7之外的所有浏览器。请找到我的代码

    if ("crypto" in window && "getRandomValues" in crypto) 
            rand = crypto.getRandomValues(new Uint8Array(1))[0] % 16|0;
        else rand = Math.random() * 16 | 0;
        return hexs[i === 19 ? rand & 0x3 | 0x8 : rand];
    })

请找到屏幕截图。这是我的错误:[屏幕截图][1]https://i.stack.imgur.com/Z1aYk.png

基于此处的文档:

作为参数给定的数组中填充了随机数。

这并不意味着它返回一个充满随机数的数组。所以,像这样更改你的代码:

if ("crypto" in window && "getRandomValues" in crypto){
  var arr = new Uint8Array(1);
  crypto.getRandomValues(arr)
  rand = arr[0] % 16|0;
}