gpt4 book ai didi

java - 如何在JRE(Java Runtime Environment)中收集熵源?

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:50:34 24 4
gpt4 key购买 nike

我希望在 JRE 中找到熵源(噪声源)。(熵源是指PRNG(伪随机数生成器)的种子 Material (或种子)。)

但是,我不知道什么是好的种子熵源。

所以我很难在 JRE 中找到合适的熵源。

你能告诉我这件事吗?

最佳答案

您可以从 JVM 中的不同来源提取熵:

  • 最明显的来源是时钟

    System.currentTimeMillis();
    System.nanoTime();
  • 你可以请求空闲内存,它经常变化

    Runtime.getRuntime().freeMemory()
  • 也可以使用对象内部的hashCode作为熵

    System.identityHashCode(someObject)
    new Object[0].hashCode()
  • 寻找更重的东西,也许最全面的熵源是 MXBeans ,它们有许多属性会随着时间的推移发生不可预测的变化。

    ManagementFactory.getMemoryMXBean()
    ManagementFactory.getThreadMXBean()
    ...
  • 最后,你总能生成RandomSecureRandom数字或 random UUIDs , 例如

    new Random().nextLong()        
    new SecureRandom().nextLong()
    UUID.randomUUid()

顺便说一句,有人问了完全相同的问题here , 并没有取得太大的成功。

关于java - 如何在JRE(Java Runtime Environment)中收集熵源?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43750032/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com