【发布时间】:2021-10-24 20:35:33
【问题描述】:
我正在尝试在 /dev/random 无法快速填满的机器上运行代码,并且我尝试使用的 java 程序因缺少随机数而挂起。
/dev/urandom 产生“不太好”的随机数,但不会阻塞,对于这种情况,我宁愿减少随机性和完成性,也不愿更好的随机性但从不完成。
我尝试将它传递给 java
-Djava.security.egd=file:/dev/./urandom
但它没有解决任何问题(“/dev/urandom”在某些地方有问题,而“/dev/./urandom”在任何地方都有效,这就是我使用该路径的原因)。有没有办法做到这一点?
我现在已经试过了:
file:/dev/./urandom
file://dev/./urandom
file:///dev/./urandom
file:/dev/urandom
file://dev/urandom
file:///dev/urandom
没有一个有效
【问题讨论】:
-
最好看看设置系统以更快地填充随机数的方法。 security.stackexchange.com/questions/89/… 给出了一些关于如何做到这一点的例子
-
@DevWithZachary 不幸的是我无法控制系统,所以这不是我的选择之一。集群上的所有其他机器都可以很好地填充它们的随机数(是的,我有一个错误报告)
-
Java 已经使用 /dev/urandom 进行
nextBytes()调用。也许您可以展示导致问题的代码、您使用的 Java 版本以及它运行的平台。 -
@PresidentJamesK.Polk 我不能。代码在 GATK 3.8 中。 Java *,u202,最后一个免费的 Oracle 版本