【发布时间】:2022-01-13 17:41:17
【问题描述】:
如果我需要使用 RandomNumberGenerator 类生成随机 8 个字节,我可以使用单个实例生成所有 8 个字节,也可以使用 RandomNumberGenerator 的两个实例生成 8 个字节 - 第一个将生成 4 个字节和第二个将生成剩余的 4 个字节。问题是 - 如果我使用 RandomNumberGenerator 的两个实例,它会使 8 个字节中的任何一个比其他的更可能吗?它会是一个安全的生成器吗?
【问题讨论】:
-
RandomNumberGenerator生成均匀分布和独立(具有0相关性)随机值。这就是为什么拥有一台或多台发电机并不重要 -
您是否尝试过运行这两个案例,可能每个 24 小时,并测试两个输出是否具有您期望的随机性?
-
没有机器生成的随机序列是真正随机的。唯一真正的随机生成器是基于 Nature 的。理论上,如果您有一个真正的随机生成器,那么使用单个 8 位生成器或使用两个 4 位生成器来创建结果的概率应该没有区别。所以这可能是一个棘手的问题。
-
我将尝试运行这两种情况并写下频率直方图
标签: c# asp.net .net random cryptography