小编Sta*_*nov的帖子

在需要重新设定种子之前,我可以从 Java 的 SecureRandom CSPRNG 中提取的最大字节数是多少

我正在用 Java 实现一个应用程序,并使用 SecureRandom 来生成随机性。我需要能够加密 10 亿个文件。我在 StackOverflow 上寻找问题的答案,但没有找到确切的答案。大家都很模糊:

\n\n
    \n
  • 您不需要\xe2\x80\x99 重新播种 SecureRandom。它有一个 \xe2\x80\x9clarge\xe2\x80\x9d 周期。但什么是呢?
  • \n
  • 您不需要\xe2\x80\x99t 重新播种 SecureRandom,因为它是 \xe2\x80\x9c 设计良好的 CSPRNG。但是什么是设计良好的CSPRNG\xe2\x80\x99s 周期?
  • \n
\n\n

所以我决定自己算一下,看看是否有人可以帮我检查一下。关于 Java 8 中 SecureRandom\xe2\x80\x99s 当前的实现,我们了解哪些事实?事实上,从我发现的消息来源来看,存在一些争议。

\n\n
\n\n

我对 Java 的 SecureRandom 实现的了解

\n\n
    \n
  • 在通过调用nextBytes()、等nextInt()生成随机性时,它在内部使用 SHA1PRNG nextLong()(请参阅TersesystemsCigital)。

    \n\n

    Cigital 对 SecureRandom 底层功能的解释与Java 文档的官方解释相矛盾。Oracle 的官方文档指出,NativePRNG、NativePRNGBlocking、NativePRNGNonBlocking 和 Windows-PRNG 始终使用本机随机源,而不是 Java\xe2\x80\x99s 自己的 SHA1PRNG 算法(这个答案这个提到了)。Cigital\xe2\x80\x99s 链接表示 Java 始终使用 …

java random encryption cryptography

5
推荐指数
0
解决办法
698
查看次数

标签 统计

cryptography ×1

encryption ×1

java ×1

random ×1