相关疑难解决方法(0)

如何解决慢Java`SecureRandom`?

如果你想在Java中使用加密强大的随机数,你可以使用SecureRandom.不幸的是,SecureRandom可能会很慢.如果它/dev/random在Linux上使用,它可以阻止等待足够的熵建立.你如何避免性能损失?

有没有人使用Uncommon Maths作为解决这个问题的方法?

任何人都可以确认JDK 6中已经解决了这个性能问题吗?

java security random performance entropy

157
推荐指数
11
解决办法
14万
查看次数

在boot2docker中运行的docker容器中没有足够的熵来支持/ dev/random

在虚拟化Linux系统中耗尽熵似乎是一个常见问题(例如/ dev/random极慢?,让linux缓冲/ dev/random).尽管使用了硬件随机数生成器(HRNG),但经常建议使用像HAVEGED这样的熵收集守护进程.但是,熵收集守护程序(EGD)无法在Docker容器内运行,它必须由主机提供.

使用EGD适用于基于Linux发行版(如Ubuntu,RHEL等)的docker主机.在boot2docker中运行这样的守护进程 - 基于Tiny Core Linux(TCL) - 似乎是另一个故事.尽管TCL具有扩展机制,但是熵收集守护程序的扩展似乎不可用.

因此,EGD似乎是在(生产)托管环境中运行docker容器的正确解决方案,但是如何解决它在boot2docker中进行开发/测试?

由于在boot2docker中运行EGD似乎太难了,我想只需使用/ dev/urandom而不是/ dev/random.使用/ dev/urandom不太安全,但对于大多数没有生成长期加密密钥的应用程序仍然可以.至少它应该适用于boot2docker中的开发/测试.

docker boot2docker

51
推荐指数
4
解决办法
2万
查看次数

Tomcat7在Ubuntu 14.04 x64上启动太晚[Digitalocean]

我正在使用digitalocean并尝试在ubuntu上安装和启动tomcat但不幸的是我不能这样做.(创造了新的水滴并尝试了10次)

1GB Ram 30GB SSD Disk Amsterdam 2 Ubuntu 14.04 x64

当我启动tomcat时,它说"Tomcat启动".但我无法从浏览器访问页面.和./shutdown.sh返回错误.

可能是什么问题?

我现在注意到了什么.在我写这个问题时,会显示tomcat页面.显示页面花了28分钟

catalina.out说:INFO:使用[SHA1PRNG]为会话ID生成创建SecureRandom实例花了[1,718,769]毫秒.

以下是我的安装步骤(这些步骤适用于不同的vps,但不适用于digitalocean飞沫):

安装oracle jdk

 sudo apt-get install python-software-properties
 sudo add-apt-repository ppa:webupd8team/java
 sudo apt-get update
 sudo apt-get install oracle-java7-installer
 sudo apt-get install oracle-java7-set-default
      java -version
      java version "1.7.0_72"
      Java(TM) SE Runtime Environment (build 1.7.0_72-b14)
      Java HotSpot(TM) 64-Bit Server VM (build 24.72-b04, mixed mode)
Run Code Online (Sandbox Code Playgroud)

设置java路径

      sudo nano /etc/environment
      JAVA_HOME="/usr/lib/jvm/java-7-oracle"
      source /etc/environment
      wget http://ftp.itu.edu.tr/Mirror/Apache/tomcat/tomcat-7/v7.0.56/bin/apache-tomcat-7.0.56.tar.gz
      tar xvzf apache-tomcat-7.0.56.tar.gz
      mv apache-tomcat-7.0.56/ apache-tomcat-7.0.56-server-1/
Run Code Online (Sandbox Code Playgroud)

启动Tomcat

        ./startup.sh
            Using CATALINA_BASE:   /usr/local/apache-tomcat-7.0.56-server-1
            Using CATALINA_HOME:   /usr/local/apache-tomcat-7.0.56-server-1 …
Run Code Online (Sandbox Code Playgroud)

java ubuntu tomcat digital-ocean

47
推荐指数
3
解决办法
2万
查看次数

即使在java 8中,SecureRandom的创建也很慢

我搜索了这个问题.我得到了印象,它在java 8中解决了.但突然之间,我开始在我的新VM中基于ubuntu 14.04解决这个问题.

2015-07-27 14:56:35.324 INFO 11809 --- [localhost-startStop-1] oacutil.SessionIdGeneratorBase:使用[SHA1PRNG]创建会话ID生成的SecureRandom实例花了[167,833]毫秒.

而且java版本是

java -version java version"1.8.0_45"Java(TM)SE运行时环境(版本1.8.0_45-b14)Java HotSpot(TM)64位服务器VM(版本25.45-b02,混合模式)

服务器是ubuntu 14.04.

另一件事是,我将这个java进程作为spring boot应用程序运行,它已经嵌入了tomcat运行.

任何想法,什么可能是错的?我甚至试过,

-Djava.security.egd = file:/ dev /./ urandom 选项

java random spring java-8

7
推荐指数
1
解决办法
5582
查看次数