一尘不染

为什么要完全使用C#类System.Random而不是System.Security.Cryptography.RandomNumberGenerator?

c#

为什么有人会根本使用System.Random的“标准”随机数生成器,而不是始终使用System.Security.Cryptography.RandomNumberGenerator(或其子类,因为RandomNumberGenerator是抽象的)的加密安全随机数生成器?

内特-劳森告诉我们,在他的谷歌技术讲座演讲“ 加密反击
”在13:11分不从的Python,Java和C#中使用的“标准”随机数生成器,并转而使用加密安全的版本。

我知道两个版本的随机数生成器之间的区别(请参阅问题101337)。

但是,有什么理由不总是使用安全随机数生成器呢?为什么要使用System.Random?性能也许?


阅读 315

收藏
2020-05-19

共1个答案

一尘不染

速度和意图。如果要生成随机数并且不需要安全性,为什么要使用慢速加密功能?您不需要安全性,那么为什么要让别人认为该数字可能会用于安全的东西呢?

2020-05-19