D.W*_*.W. 15 javascript random cryptography web-applications
我需要在Javascript中生成加密安全的伪随机数.我知道window.crypto.getRandomValuesAPI,它完全符合我的要求.但是,我也知道它是在最近(2011年左右)推出的.
我可以安全地假设window.crypto.getRandomValues存在,或者使用它会在某些浏览器上引入兼容性问题吗?是否有任何主要(广泛使用)的浏览器不支持window.crypto.getRandomValues(包括移动或桌面浏览器),如果有,我需要担心哪些?我很高兴得知有足够的支持,我不再需要担心回退方法,如果确实如此.
bob*_*nce 21
我可以安全地假设window.crypto.getRandomValues存在
一如既往地取决于您的目标市场,并将随着时间的推移而变化. caniuse.com列出了哪些浏览器支持它并计算浏览器市场份额.
以下是摘要:
IE Mobile 11:带前缀
Firefox:21+
Firefox Mobile:21+
Safari:来自6.1
Safari Mobile:7.1
Chrome:11+
Android浏览器:4.4
歌剧:15岁以上
要获得更完整,最新的视图,最好只检查caniuse.com:
http://caniuse.com/#feat=getrandomvalues
截至2015年12月,除Opera Mini外,所有现代浏览器都支持它:
const crypto = window.crypto ||
window.msCrypto || {
getRandomValues: array => {
for (let i = 0, l = array.length; i < l; i++) {
array[i] = Math.floor(Math.random() * 256);
}
return array;
}
};
if (crypto.getRandomValues === undefined) {
throw new Error("crypto is not supported on this browser");
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
10893 次 |
| 最近记录: |