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

Why does CWE consider rand() as potentially dangerous

本文关键字:危险 CWE 认为 rand 为什么      更新时间:2023-10-16

我一直在使用 rand(( 函数来生成随机数。当我通过 CWE 检查工具检查我的代码时,它认为 rand(( 是一个潜在的危险函数,并建议使用加密库。谁能详细说明一下? 生成随机数的最佳和安全替代方案是什么

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

无法保证随机序列的质量 产生。在过去,rand(( 的一些实现已经严重 随机性、分布和周期的缺点 产生的序列(在一个众所周知的例子中,低阶位只是 在调用之间在 1 和 0 之间交替(。

不建议将 rand(( 用于严重的随机数生成需求。 建议使用 C++11 的随机数生成工具 替换 rand((。(自C++11起(