为什么 CWE 认为 rand() 具有潜在危险
Why does CWE consider rand() as potentially dangerous
我一直在使用 rand(( 函数来生成随机数。当我通过 CWE 检查工具检查我的代码时,它认为 rand(( 是一个潜在的危险函数,并建议使用加密库。谁能详细说明一下? 生成随机数的最佳和安全替代方案是什么
根据https://en.cppreference.com/w/cpp/numeric/random/rand:
无法保证随机序列的质量 产生。在过去,rand(( 的一些实现已经严重 随机性、分布和周期的缺点 产生的序列(在一个众所周知的例子中,低阶位只是 在调用之间在 1 和 0 之间交替(。
不建议将 rand(( 用于严重的随机数生成需求。 建议使用 C++11 的随机数生成工具 替换 rand((。(自C++11起(
相关文章:
- 既然存在危险,为什么项目要使用-I include开关
- 未初始化的变量有什么危险
- 将字符移出范围的危险
- 在C++的头文件中使用常量并在程序中询问其地址的任何潜在危险
- CRTP - 危险的内存访问?
- 危险指针的内存排序
- 在对象构造期间,将指向尚未构造的子对象的指针传递给另一个子对象的构造函数是否危险?
- 为什么 CWE 认为 rand() 具有潜在危险
- "this"关键字在C++中的实现限制,因为它与危险但功能示例有关
- cppcheck 抱怨危险地使用 c_str(). c_str() 返回的值在此调用后无效
- cpp 检查抱怨危险使用 c_str(). c_str() 返回的值在本次调用后无效,如何解决?
- 使用危险的幻数N
- 派生类的模板类作为函数的参数 - 危险?
- CUDA:来自不同翘曲但相同块的 2 个线程尝试写入相同的共享内存位置:危险?
- 聚合初始化的 C++17 扩展是否使大括号初始化变得危险?
- Cppcheck 静态代码分析器实际上可以检测到不太常见的警告(如 "Relative Path Traversal (CWE-23)" 或"Buffer Under-read(CWE-127)")吗
- 从 int 到 longlong 的危险转换:没有警告
- 在模板中存储右值引用的危险
- 这个危险指针示例是否因为 ABA 问题而存在缺陷?
- 是否存在与将数据流式传输到 c++ 异常类相关的任何危险