我正在尝试创建一个密码生成器。我使用了random
库,阅读文档后,我发现rand()
依赖于算法和种子(srand()
) >) 生成随机数。我尝试使用当前时间作为种子 (srand(time(0))
),但这并不是真正随机的。有没有办法生成真正的随机数?或者也许非常准确地获取当前时间(例如,以微秒为单位)?我的平台是 Windows 10 x64。
最佳答案
不,这些不是真正的随机数。真正的随机性需要硬件支持。通常,它们通过对模拟生成的白噪声信号进行采样来工作。
您可能希望为随机生成器提供始终不同的值。调用 time() 即可完成此操作,或者您也可以通过当前 pid ( getpid() ) 对其进行哈希处理。
https://stackoverflow.com/questions/70531120/