我一直在使用rand()函数生成随机数。当我通过CWE检查工具检查代码时,它正在考虑将rand()作为潜在的危险函数,并建议使用加密库。有人可以详细说明吗? 生成随机数的最佳和安全的选择是什么
答案 0 :(得分:4)
根据https://en.cppreference.com/w/cpp/numeric/random/rand:
不能保证随机序列的质量 生产的。过去,rand()的某些实现已经严重 随机性,分布和周期的缺点 产生的序列(在一个众所周知的例子中,低位 通话之间在1和0之间交替显示。
对于严重的随机数生成需求,不建议使用rand()。 建议使用C ++ 11的随机数生成工具 替换rand()。 (自C ++ 11起)