0

我正在寻找 6 个随机十六进制字符,并且正在使用 Ruby 的SecureRandom

SecureRandom.hex(3)将返回从 3 个字节的随机数据中解压缩的 6 个十六进制字符。

问题是,是否会SecureRandom.hex(6)[0,6]返回 6 个更随机的十六进制字符,因为在解包之前有 6 个字节的随机数据?就此而言,会SecureRandom.hex(16)[0,6]更加随机吗?

对于我的应用程序,我只需要具有超过 1600 万个唯一值的 6 个字符,但我希望与已经选择的数字发生冲突的机会尽可能低。那么使用更大n的随机字节会改善随机值在空间上的分布还是没有必要?

4

1 回答 1

4

不会。选择一个较大的随机十六进制字符串的六个字符的子字符串不会比使用生成为六个字符的字符串更“随机”。

减少冲突概率的唯一方法是拥有更多唯一的可能值。

于 2012-02-23T15:01:12.010 回答