【发布时间】:2021-03-12 00:49:18
【问题描述】:
我有最大数量的未对齐的位,例如35 并且需要生成 1 - 68719476734 的唯一随机数(35 位的最大数量)。 可以使用 SecureRandom 但必须从中提取 5 个字节并转换为 Long 可能,但冲突的可能性似乎是一个问题。有哪些选项可以为此范围生成随机数。 如果在这个范围内发生碰撞并重新生成,我可以用 nanoTime 随机播种吗?
【问题讨论】:
-
您所说的“碰撞几率似乎令人担忧”是什么意思?对于真正的随机值,总是有可能发生冲突,对此您无需采取任何措施。如果你消除了碰撞的机会,结果将不是真正的随机。
-
寻找一个足够随机的种子,以避免任何随机数的冲突
-
为什么你认为 nanoTime 会比
SecureRandom类中内置的任何算法产生更好的随机性? -
如果它可以用于 SecureRandom,我正在寻找种子。在这种情况下如何使用 SecureRandom 确保没有种子的范围
标签: java random bit secure-random