我需要一个加密安全随机数生成器来替换Math.random()
我遇到crypto.randomBytes()
但是,它返回一个字节数组。有什么方法可以将字节数组转换为0-1(以便它与Math.random
)
答案 0 :(得分:-1)
您可以执行以下操作:
var randomVal = (crypto.randomBytes(1)[0] / 255);
答案 1 :(得分:-1)
这应该可以解决问题:
crypto.randomBytes(8).readUInt32LE() / 0xffffffff;
randomBytes生成8个随机字节,然后将其读取为little endian中的32位无符号整数。 32位无符号int的最大值为0xffffffff(或十进制的4,294,967,295)。通过将随机生成的32bit int除以其最大值,您将得到一个介于0和1之间的值。