我正在使用以下函数来获取特定的随机字符串,然后将其传递给另一个函数:
function generateRandomString() {
return Math.random().toString(36).substring(2, 15) +
Math.random().toString(36).substring(2, 15);
}
我想使用crypto.getRandomValues()
代替Math.random()
。如何将Math.random().toString(36).substring(2, 15) + Math.random().toString(36).substring(2, 15);
作为参数传递给crypto.getRandomValues()
,或者我的方向错误?
您可以这样使用它:
function generateRandomString() {
return (crypto.getRandomValues(new Uint32Array(1))[0] / 4294967295).toString(36).substring(2, 15) + (crypto.getRandomValues(new Uint32Array(1))[0] / 4294967295).toString(36).substring(2, 15);
}
逻辑:将随机UInt32除以最大值(2 ^ 32 -1),以得到0到1之间的结果]
这里是参考:https://developer.mozilla.org/en-US/docs/Web/API/Crypto/getRandomValues