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

时间:2016-01-06 04:33:52

标签: javascript

你能帮我解决一下我的问题。我已经使用了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];
    })

请找截图。这是我的错误: [screenshot] [1] http://i.stack.imgur.com/Z1aYk.png

1 个答案:

答案 0 :(得分:1)

基于documentation here

  

作为参数给出的数组用随机数填充。

这并不意味着它返回一个填充了随机数的数组。 所以,改变你的代码:

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