您如何使用Rand板条箱更换发生器?

问题描述 投票:0回答:1

““ Rand Rand Book”记录了各种生成器。 thread_rng声称在密码上是安全的,而其他人则没有。但是,我看不到有关如何更改生成器的任何参考。使用thread_rng时,我也看不出任何方法来找出正在使用的生成器。我想对可用的各种选项进行测试,我该怎么做?

random rust generator
1个回答
0
投票

Q:但是,我看不到有关如何更改生成器的任何参考。

“更改”一词在这里并不适合,因为您只是创建另一个RNG实例并使用它。例如,您不能change thread_rng返回的内容。

说您要使用SmallRng。您必须先创建一个实例,然后才能使用它创建随机数据。有多种方法可以做到这一点,其中SmallRng是最简单的方法。或者,您可以提供自己的带有from_entropy的种子。检查文档以获取更多信息。

创建RNG之后,您现在可以生成随机数据,就像from_seed返回的内容一样:

thread_rng

Q:使用let mut rng = SmallRng::from_entropy(); println!("{}", rng.gen::<u32>()); 时,我也看不出有任何方法找出正在使用的生成器。

thread_rng状态:“ The docs for ThreadRng使用与ThreadRng相同的PRNG来提高安全性和性能”。 ThreadRng状态:

StdRng中的PRNG算法被选择为在当前平台上有效,具有统计上的优势和不可预测的意义(意味着密码上安全的PRNG)。

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

© www.soinside.com 2019 - 2024. All rights reserved.