如何将随机字节转换为整数范围?

我试图通过从crypto.randomBytes()读取范围内的随机整数。

现在,我的问题是,我不知道如何从字节stream中读取整数。 我认为生成一个范围只是一个“丢掉”不在范围内的整数。

有任何想法吗?

您可以从crypto.randomBytes获得一个32位整数,下面的代码。 如果你需要多于一个,你可以从crypto.randomBytes请求更多的字节,然后使用substr分别select和转换每个整数。

 crypto.randomBytes(4, function(ex, buf) { var hex = buf.toString('hex'); var myInt32 = parseInt(hex, 16); }); 

话虽如此,你可能只想使用Math.floor(Math.random() * maxInteger)