我需要一个加密安全的随机数生成器来替换 Math.random()
但是,我遇到了 crypto.randomBytes(),它返回一个字节数组。有什么方法可以使字节数组变为 0-1(以便与 Math.random 兼容)

最佳答案

这应该可以解决问题:

crypto.randomBytes(4).readUInt32LE() / 0xffffffff;
randomBytes 生成 4 个随机字节,然后以小端序将其读取为 32 位无符号整数。 32 位无符号整数的最大值为 0xffffffff(或十进制 4,294,967,295)。通过将随机生成的 32 位 int 除以其最大值,您会得到一个介于 0 和 1 之间的值。

关于node.js - 如何使 crypto.randomBytes() 替换 Math.random(),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26152579/

10-13 09:16