k.v*_*ent 1 javascript random cryptography
我使用以下函数来获取特定的随机字符串,然后将其传递给另一个函数:
function generateRandomString() {
return Math.random().toString(36).substring(2, 15) +
Math.random().toString(36).substring(2, 15);
}
Run Code Online (Sandbox Code Playgroud)
我想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);
}
Run Code Online (Sandbox Code Playgroud)
逻辑:将随机的 UInt32 除以最大值(2^32 -1),得到 0 到 1 之间的结果
这是参考: https: //developer.mozilla.org/en-US/docs/Web/API/Crypto/getRandomValues