我希望在 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() ...
最后,你总能生成Random和 SecureRandom数字或 random UUIDs , 例如
new Random().nextLong() new SecureRandom().nextLong() UUID.randomUUid()
顺便说一句,有人问了完全相同的问题here , 并没有取得太大的成功。
关于java - 如何在JRE(Java Runtime Environment)中收集熵源?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43750032/