使用方法:

1.将$JAVA_HOME/jre/lib/security/Java.security内,将securerandom.source的内容改为file:/dev/./urandom即可

2.java -jar -Djava.security.egd=file:/dev/./urandom

作用:

tomcat部署项目发现卡在Root WebApplicationContext : initialization completed in xxxms

1.整个过程没有报错,但是启动时间很长。

2.查阅资料发现由于tomcat启动时产生随机数导致jvm阻塞,可能是多次启动tomcat导致熵池被用空造成阻塞。

在apache-tomcat官方文档:如何让tomcat启动更快里面提到了一些启动时的优化项,其中一项是关于随机数生成时,采用“熵源”(entropy source)的策略。他提到tomcat7的session id的生成主要是通过java.security.SecureRandom生成随机数来实现的,随机数算法使用的是“SHA1PRANG”。

3.在sun/oracle的jdk里,这个算法的提供者在底层依赖到操作系统提供的随机数,在linux上,与之相关的是/dev/random和dev/urandom/

当熵池为空时,来自/dev/random的读取操作将被阻塞,直到熵池收集到足够的环境噪声数据。这么做的目的是成为一个密码安全的伪随机数发生器,熵池要有尽可能大的输出。对于生成高质量的加密密钥或者是需要长期保护的场景,一定要这么做。

-Djava.security.egd=file:/dev/./urandom参数的作用相关推荐

  1. java $JAVA_OPTS -Djava.security.egd=file:/dev/./urandom -jar

    1 $JAVA_OPTS 原文链接:链接:https://www.jianshu.com/p/147422fca01b 我们知道,对于 tomcat 来说,设置 JAVA_OPTS 就可以给 jvm ...

  2. Java:-Djava.security.egd=file:/dev/urandom

    -Djava.security.egd=file:/dev/urandom 作用 http://codingdict.com/questions/121478 https://blog.51cto.c ...

  3. java.security.egd 作用

    SecureRandom在java各种组件中使用广泛,可以可靠的产生随机数.但在大量产生随机数的场景下,性能会较低.这时可以使用"-Djava.security.egd=file:/dev/ ...

  4. /dev/urandom

    /dev/urandom则是一个非阻塞的发生器: dev/random的一个副本是/dev/urandom ("unlocked",非阻塞的随机数发生器),它会重复使用熵池中的数据 ...

  5. /dev/random和/dev/urandom

    /dev/random和/dev/urandom是unix系统提供的产生随机数的设备,很多应用都需要使用random设备提供的随机数,比如ssh keys, SSL keys, TCP/IP sequ ...

  6. linux dev urandom,Linux random vs urandom 区别

    8种机械键盘轴体对比 本人程序员,要买一个写代码的键盘,请问红轴和茶轴怎么选? /dev/random In Unix-like operating systems, /dev/random is a ...

  7. 探秘Linux特殊设备文件:(/dev/null,/dev/zero,/dev/random,/dev/urandom等)

    目录标题 第一章:设备文件简介(Introduction to Device Files) 1.1 设备文件概述(Overview of Device Files) 1.2 设备文件类型(Types ...

  8. [转帖]关于 /dev/urandom 的流言终结 | Linux 中国

    关于 /dev/urandom 的流言终结 | Linux 中国 2019年05月05日 14:03:52 技术无边 阅读数 202 版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权 ...

  9. 关于 /dev/urandom 的流言终结

    有很多关于 /dev/urandom 和 /dev/random 的流言在坊间不断流传.然而流言终究是流言. 本篇文章里针对的都是近来的 Linux 操作系统,其它类 Unix 操作系统不在讨论范围内 ...

最新文章

  1. ubuntu 安装mysql5.6
  2. 卸载 插件_永远都不会卸载的CAD插件,好用到怀疑人生
  3. 汇编指令prefix rep:
  4. Android Studio 3.0 下 Cordova 打包时 Gradle 兼容性问题解决
  5. typora+picgo+gitee搭建免费图床纵享丝滑
  6. Uboot 启动流程分析
  7. 2020最新,100道电商大厂必问面试题:附完整答案
  8. Python之协程、异步IO、redis缓存、rabbitMQ队列
  9. 拓端tecdat|R语言极值推断:广义帕累托分布GPD使用极大似然估计、轮廓似然估计、Delta法
  10. Context Menu控件
  11. wxwindows qt
  12. 经典剖析电源PCB布板与EMC的关系(上)
  13. KB4484127 更新导致ACCESS数据库查询报 Query '' is corrupt 异常解决方案
  14. Qt 之 QQ系统表情(一)
  15. 网管维修必备工具_7手机维修必备工具
  16. HTML简单制作一个网页
  17. IE浏览器js 中http请求,中文传参报400错误-解决方法
  18. bboss es对比直接使用es客户端的优势
  19. [下属谈话]管理者与下属谈话的技巧以及注意点
  20. vue项目国际化 vue-i18n以及踩坑解决 小姐姐手把手教你VUE国际化~

热门文章

  1. hive linux时间戳转换,Hive 中 时间戳,字符串转换
  2. 2022年12月电子学会青少年软件编程Scratch(二级)等级考试真题解析
  3. 墨西哥付款方式有哪些
  4. 【WebGIS全栈】从0到1开发整站——旅游足迹地图网站
  5. 情感驿站 | 为人处世的行为准则总结
  6. 求一个区间内所有的质数(C++实现)
  7. 字蛛压缩ttf字体(前端常用)
  8. ASCII码和Unicode字符集
  9. 从Map、JSONObject取不存在键值对时的异常情况
  10. 关于LibLinear使用总结