STF*_*ZBR 1 random generator rust
“The Rust Rand Book”记录了各种生成器。thread_rng声称是加密安全的,而其他人则不然。但是,我没有看到任何关于如何更改发电机的参考。我也没有看到任何方法可以找出使用时使用的生成器thread_rng。我想对各种可用选项进行测试,我该怎么做?
问:但是,我没有看到任何关于如何更换发电机的参考。
“更改”这个词在这里并不合适,因为您只需创建另一个 RNG 实例并使用它。例如,您无法更改返回的内容。thread_rng
说你想用SmallRng。在使用它创建随机数据之前,您必须创建一个实例。有多种方法可以做到这一点,这from_entropy是最简单的一种。或者,您可以提供自己的种子from_seed。检查文档以获取更多信息。
创建 RNG 后,您现在可以生成随机数据,就像thread_rng返回的一样:
let mut rng = SmallRng::from_entropy();
println!("{}", rng.gen::<u32>());
Run Code Online (Sandbox Code Playgroud)
问:我也没有看到任何方法可以找出使用时使用的生成器
thread_rng。
文档的ThreadRng状态:“ThreadRng使用与安全性和性能相同的 PRNG StdRng”。国家文件StdRng:
选择的PRNG 算法在
StdRng当前平台上是高效的、统计上强大且不可预测的(意味着加密安全的 PRNG)。目前使用的算法是20轮的ChaCha分组密码。随着密码安全性和性能的新证据的出现,这种情况可能会发生变化。