【发布时间】:2013-05-09 12:03:08
【问题描述】:
由于 RNGCryptoServiceProvider 比 Random() 更“安全”(产生高质量的随机数),我觉得使用它。性能不是问题。但是,不是读取最后一个数字,而是以某种方式决定何时在其前面添加 0 或 1。有没有更好(更准确)的方法?
byte[] data = new byte[4];
rng.GetBytes(data);
int value = BitConverter.ToInt32(data, 0);
Console.WriteLine(value);
【问题讨论】:
-
“更安全”?这意味着什么? APC 比我的车更安全,但我认为与我的车一起工作不值得。
-
产生更好的随机数
-
“更好”在什么意义上?
-
“更好”也不是一个科学术语。它产生加密安全随机数。如果您不将它们用于无关紧要的加密货币。此外,通过自己修改数字,您实际上是在破坏它们的加密强度属性。那么你得到了什么?
-
@Jon
System.Random即使对于非加密数字也不理想。它很难播种,在某些情况下它有很大的偏差,......