RNGCryptoServiceProvider

RNGCryptoServiceProvider

使用System.Security.Cryptography.RNGCryptoServiceProviderSystem.Random的优缺点是什么?我知道RNGCryptoServiceProvider是“随机性更高”的,也就是说,对于黑客来说更难以预测。还有其他优点或缺点吗?

更新:

根据响应,到目前为止,这是使用RNGCryptoServiceProvider的利弊:

优点

  • RNGCryptoServiceProvider是一个更强的密码随机数,这意味着确定加密 key 等会更好。

  • 缺点
  • Random更快,因为它是一种更简单的计算。当用于不要求加密随机性的模拟或长时间计算时,应使用此方法。注意:有关模拟的详细信息,请参见Kevin's answer-Random不一定足够随机,您可能要使用其他非加密PRNG。
  • 最佳答案

    具有加密功能的RNG将较慢---它需要更多的计算---并且在频谱上是白色的,但由于其花费的时间更长,而且可能会花费更多的时间,因此也不适合模拟或蒙特卡洛方法不可重复,非常适合测试。

    通常,当您想要唯一的数字(例如UUID)或要用作加密的 key ,而要确定性的PRNG来提高速度和进行仿真时,则希望使用加密的PRNG。

    10-07 21:03