为什么CWE认为rand()有潜在危险

时间:2018-09-22 06:34:50

标签: c++ random cryptography

我一直在使用rand()函数生成随机数。当我通过CWE检查工具检查代码时,它正在考虑将rand()作为潜在的危险函数,并建议使用加密库。有人可以详细说明吗? 生成随机数的最佳和安全的选择是什么

1 个答案:

答案 0 :(得分:4)

根据https://en.cppreference.com/w/cpp/numeric/random/rand

  

不能保证随机序列的质量   生产的。过去,rand()的某些实现已经严重   随机性,分布和周期的缺点   产生的序列(在一个众所周知的例子中,低位   通话之间在1和0之间交替显示。

     对于严重的随机数生成需求,不建议使用

rand()。   建议使用C ++ 11的随机数生成工具   替换rand()。 (自C ++ 11起)