真正的随机c#生成器

Dom*_*ing 11 c#-4.0

  Random ran = new Random();
  byte tmp = (byte)ran.Next(10);
Run Code Online (Sandbox Code Playgroud)

这个代码有替代品吗?它似乎没有完全随机的行为.

pst*_*jds 14

那是因为Random只是伪随机的.如果你想要加密安全的随机数,你需要使用像System.Security.Cryptography.RNGCryptoServiceProvider这样的类.

  • 不。问题是为每个 Next() 调用实例化一个新的 Random 实例。一个经常犯的错误。 (2认同)