繁体   English   中英

您如何使用 Rand 板条箱更换发电机?

[英]How do you change the generator with the Rand crate?

“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>());

问:在使用thread_rng时,我也没有看到任何方法可以找出正在使用的生成器。

ThreadRng状态的文档:“ ThreadRng使用与ThreadRng相同的 PRNG 以StdRng安全性和性能”。 StdRng状态的文档

StdRng的 PRNG 算法被选择为在当前平台上是有效的,在统计上强大且不可预测(意味着加密安全的 PRNG)。

当前使用的算法是 20 轮的 ChaCha 分组密码。 随着密码安全性和性能的新证据的出现,这种情况可能会发生变化。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM