一些背景信息:我希望在Red Hat服务器上运行脚本以从/ dev/random读取一些数据,并使用Perl unpack()命令将其转换为十六进制字符串以供以后使用(基准数据库操作).我在/ dev/random上运行了一些"head -1",它似乎工作正常,但在调用它几次后,它就会有点挂起.几分钟后,它最终会输出一小段文字,然后完成.
我切换到/ dev/urandom(我真的不想,它更慢,我不需要那种随机性)并且它在前两次或三次调用时工作正常,然后它也开始挂起.我想知道它是否是轰炸它的"头部"命令,所以我尝试使用Perl做一些简单的I/O,它也悬挂着.作为最后的努力,我使用"dd"命令将一些信息直接转储到文件而不是终端.我所要求的只是1mb的数据,但在我杀死它之前花了3分钟才得到~400字节.
我检查了进程列表,CPU和内存基本没有动过.究竟是什么原因可能会导致/ dev/random这样废弃,以及我可以做些什么来防止/修复它?
编辑:谢谢你的帮助!似乎我随机和随机混淆了.我现在已经启动并运行了该脚本.看起来我今天学到了新东西.:)
我有问题,Tomcat 7在启动时非常慢.我在日志文件中找到了这个:
INFO: Creation of SecureRandom instance for session ID generation using [SHA1PRNG] took [12,367] milliseconds.
Run Code Online (Sandbox Code Playgroud)
安全性很重要,当然,但不是在我的开发机器上.我完全可以使用标准的快速随机数发生器.所以我不需要这个非常慢的SecureRandom实现.
问题是:如何禁用它?搜索解决方案,但只找到一些关于randomClass可以设置为的属性的弃用信息java.util.Random.我还发现这个属性secureRandomClass现在似乎在Tomcat 7中被命名了.我试图将它设置为java.util.Random但是这会失败,因为Tomcat 7将对象强制转换为java.util.SecureRandom(并且还记录了指定的类必须扩展java. util.SecureRandom,因此不再可能使用java.util.Random.)
那么我怎样才能摆脱这个非常慢的随机数生成器启动,以便我的开发tomcat尽可能快地启动/重启?
我需要对apt存储库进行docker化.其中的包需要签名,目前已完成
aptly publish snapshot -distribution="stable" -gpg-key="<key id>" my-snapshot
在此之前,需要使用创建密钥gpg --gen-key.
但是这样私有密钥将在docker镜像中创建,这似乎不是一个好习惯.此外,id甚至不起作用; 跑步gpg --gen-key --batch <gpg.in卡住了:
Not enough random bytes available. Please do some other work to give
the OS a chance to collect more entropy! (Need 284 more bytes)
Run Code Online (Sandbox Code Playgroud)
我不知道是否甚至可以在docker容器中生成一个gpg密钥,即使它是,也可能不是一个好主意.
有没有办法通过外部密钥签署回购的内容?
FROM openjdk:8-jdk-alpine
VOLUME /tmp
ARG JAR_FILE
COPY ${JAR_FILE} app.jar
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]
Run Code Online (Sandbox Code Playgroud)
上面的Dockerfile示例来自docker的官方Spring Boot 指南。我想知道安全属性的用途是什么,因为我通常不会在本地开发环境中运行应用程序时设置它,但它似乎出现在各种容器化指南中。干杯!