获得一个字节的随机性

Getting a byte of randomness

本文关键字:一个 字节 随机性      更新时间:2023-10-16

可能重复:
C++中最随机的函数是什么?

在C++中,这是安全的吗:

int main() {
srand(time(0));
unsigned char arr[10];
for(int i=0; i <sizeof(arr); ++i)
    arr[i] = (unsigned char)rand();
}

有没有更好的方法可以以独立于平台的方式随机填充字节数组?如果不能做到这一点,有没有更好的方法在windows上实现这一点?(我知道rand((不是一个很好的PRNG,我只是用它作为一个例子(。

谢谢!

使用boost.random怎么样?它使用的生成器可以传递给std::generate来填充您的数组,它是独立于平台的,并且仅用于头。我会给出一个代码示例,但目前还没有可用的提升安装。

编辑:如前所述:在C++0x(即将推出的标准(中,您可以使用tr1::random,它本质上只是boost库成为标准C++库的一部分。