SecureRandom】的更多相关文章

java.util.Random 产生确定的值可能被恶意的程序预测到. java.security.SecureRandom 产生不确定的随机数不能被预测到. 所以优先使用java.security.SecureRandom类.…
文中的 Random即:java.util.Random,ThreadLocalRandom 即:java.util.concurrent.ThreadLocalRandomSecureRandom即:java.security.SecureRandom Q:Random是不是线程安全的?A:Random是线程安全的,但是多线程下可能性能比较低.参考:http://docs.oracle.com/javase/7/docs/api/java/util/Random.htmlhttp://stac…
Java中的随机数生成器:Random,ThreadLocalRandom,SecureRandom 文中的 Random即:java.util.Random,ThreadLocalRandom 即:java.util.concurrent.ThreadLocalRandomSecureRandom即:java.security.SecureRandom Q:Random是不是线程安全的?A:Random是线程安全的,但是多线程下可能性能比较低.参考:http://docs.oracle.com…
 详见: http://blog.yemou.net/article/query/info/tytfjhfascvhzxcytp84 Random即:java.util.Random, ThreadLocalRandom 即:java.util.concurrent.ThreadLocalRandomSecureRandom即:java.security.SecureRandomQ:Random是不是线程安全的?A:Random是线程安全的,但是多线程下可能性能比较低.参考:http://doc…
一.背景 今天部署项目到tomcat,执行./startup.sh命令之后,访问项目迟迟加载不出来,查看日志又没报错(其实是我粗心了,当时tomcat日志还没打印完),一开始怀疑是阿里云主机出现问题,访问ip:80发现nginx运行正常.在我百思不得其解时,项目访问正常了,查看启动日志,发现如下: 15-Mar-2018 16:41:02.302 WARNING [main] org.apache.catalina.util.SessionIdGeneratorBase.createSecure…
刚部署好程序,第一次登录时,加载非常得慢,查看log日志发现:Creation of SecureRandom instance for session ID generation using [SHA1PRNG] took [33,755] milliseconds. 说什么创建用于会话ID生成的SecureRandom实例花费了[33,755]毫秒. 解决办法:打开$JAVA_PATH/jre/lib/security/java.security这个文件,找到下面的内容: secureran…
1.找到jre—>lib—>security 2.找到      securerandom.source=file:/dev/random 替换成:securerandom.source=file:/dev/./urandom 3.产生这个情况的原因: 由该日志可以看出,实例化该对象使用了253秒,导致整个应用启动了275秒之久. 注意这条日志: 1 2 org.apache.catalina.util.SessionIdGeneratorBase.createSecureRandom Cre…
tomcat启动日志: 08-Jun-2018 09:23:00.445 WARNING [localhost-startStop-1] org.apache.catalina.util.SessionIdGeneratorBase.createSecureRandom Creation of SecureRandom instance for session ID generation using [SHA1PRNG] took [349,703] milliseconds. 根本原因是 Se…
修改$JAVA_PATH/jre/lib/security/java.security文件 将 securerandom.source=file:/dev/random 修改为 securerandom.source=file:/dev/./urandom…
SecureRandom在java各种组件中使用广泛,可以可靠的产生随机数.但在大量产生随机数的场景下,性能会较低. 这时可以使用"-Djava.security.egd=file:/dev/./urandom" 加快随机数产生过程. http://blog.51cto.com/leo01/1795447…
我们知道,Random类中实现的随机算法是伪随机,也就是有规则的随机.在进行随机时,随机算法的起源数字称为种子数(seed),在种子数的基础上进行一定的变换,从而产生需要的随机数字. 相同种子数的Random对象,相同次数生成的随机数字是完全相同的.也就是说,两个种子数相同的Random对象,生成的随机数字完全相同. 所以在需要频繁生成随机数,或者安全要求较高的时候,不要使用Random,因为其生成的值其实是可以预测的. SecureRandom类提供加密的强随机数生成器 (RNG) 当然,它的…
好久没有使用MyEclipse10了,今天打开看了以前大学的项目,在Tomcat7中发布启动,我嚓嘞,报错: SEVERE: Exception initializing random number generator using algorithm [SHA1PRNG] java.security.NoSuchAlgorithmException: SHA1PRNG SecureRandom not available at sun.security.jca.GetInstance.getIn…
编译安装tomcat-native和tomcat-deamon以后,发现toomcat启动很慢,好久才有响应.以下日志供参考: 11-Sep-2017 12:19:28.102 INFO [main] org.apache.catalina.startup.HostConfig.deployDirectory Deploying web application directory [/opt/apache-tomcat-9.0/webapps/ROOT]11-Sep-2017 12:19:28.…
SecureRandom是强随机数生成器,主要应用的场景为:用于安全目的的数据数,例如生成秘钥或者会话标示(session ID),弱随机数生成器会产生严重的安全问题,而使用SecureRandom这样的强随机数生成器将会极大的降低出问题的风险. SecureRandom与Random有很强的关系. 1. SecureRandom继承于Random,看一下它的两个构造函数构造函数: public SecureRandom() { super(0);//调用Random的构造函数 getDefau…
io.netty.util.internal.ThreadLocalRandom getInitialSeedUniquifierWARNING: Failed to generate a seed from SecureRandom within 3 seconds. Not enough entrophy?当遇到上边提示信息时,可以安装rng-tools,然后 systemctl start rngdsystemctl enable rngd…
数值操作 数值新特性 包装类 浮点 BigDecimal BigInteger 数值本地化 随机数 假随机数 真随机数 播种 结语 数值操作 数值新特性 123_456 等价于 123456,增加可读性 包装类 每个基本数据类型都会有一个包装类与之对应,用来提供更为强大的功能 包装类: Byte Short Integer Long Float Double Character Boolean 将字符串转化成对应的基本数据类型 boolean bl = Boolean.parseBoolean(…
一.背景 今天部署项目到tomcat,执行./startup.sh命令之后,访问项目迟迟加载不出来,查看日志又没报错(其实是我粗心了,当时tomcat日志还没打印完),一开始怀疑是阿里云主机出现问题,访问ip:80发现nginx运行正常.在我百思不得其解时,项目访问正常了,查看启动日志,发现如下: 15-Mar-2018 16:41:02.302 WARNING [main] org.apache.catalina.util.SessionIdGeneratorBase.createSecure…
使用AES算法的时候,会发现下面的代码在windows每次产生确定的结果,但Linux就不同,导致无法正确解密 public static String encrypt(String content, String password) { try { KeyGenerator kgen = KeyGenerator.getInstance("AES"); kgen.init(128, new SecureRandom(password.getBytes())); SecretKey s…
用腾讯云的CentOS 7.2 CVM 服务器跑Tomcat时发现,Tomcat启动的特别慢,通过查看日志,发现时间主要花在实例化SecureRandom对象上了. 由该日志可以看出,实例化该对象使用了460秒,导致整个应用启动了480秒之久. 根本原因是SecureRandom 这个jre的工具类的问题. 具体内容:JDK-6521844 : SecureRandom hangs on Linux Systems 那为什么SecureRandom generateSeed这么慢,甚至挂在Lin…
公众号「码海」欢迎关注 背景 我们的项目工程里经常在每个函数需要用到 Random 的地方定义一下 Random 变量(如下) public void doSomethingCommon() { Random rand = new Random(); ... } 在用 sonar 进行检查时,会发现会有如下告警 Creating a new Random object each time a random value is needed is inefficient and may produc…
Random Random用来创建伪随机数.所谓伪随机数,是指只要给定一个初始的种子,产生的随机数序列是完全一样的. 要生成一个随机数,可以使用nextInt().nextLong().nextFloat().nextDouble(): Random r = new Random(); r.nextInt(); // 2071575453,每次都不一样 r.nextInt(10); // 5,生成一个[0,10)之间的int r.nextLong(); // 881164929257036930…
开发某个项目过程中,就需求,搭建了一套测试环境.很快完成! 后来代码中加入了许多新功能,会涉及到反复重启,然后就发现了启动特别慢.这给原本功能就不多的应用增添了许多的负担. 我决定改变这一切!找到启动缓慢的根源,加快启动速度! 思路展开: 1. 启动慢,先看日志,有没有什么异常? 2. 看下是不是gc 有问题,是否占用很长时间? 3. 日志卡住,是否是存在网络请求不通情况? 4. 抓包查看卡住的时候,应用都做什么? 5. 把线程堆栈打印出来,线程都在做什么?把内存dump 出来瞅瞅吧? 6. 实…
之前写随机数的时候一直用SecureRandom.getInstanceStrong()方法生成SecureRandom实例,进而调用其各种next方法.突然有一次,发现next方法卡住了, 每一次调用都需要四五分钟.google之,发现网上也有很多其他开发人员在反馈这个问题,有的说在启动的时候提案加    .但是有时候项目不是自己部署的,不是你想用什么命令就用什么命令,想替换什么文件就替换什么文件,比如某安某寿.研究SecureRandom.getInstanceStrong()方法的源码,发…
目录 1. 什么是安全的随机数? 2. 怎么得到安全的随机数 3. SecureRandom最佳实践 3.1 基本用法 3.2 关于种子的设置 3.3 熵源不足时阻塞问题 4. 小结 1. 什么是安全的随机数? 在安全应用场景,随机数应该使用安全的随机数.密码学意义上的安全随机数,要求必须保证其不可预测性. 2. 怎么得到安全的随机数 可以直接使用真随机数产生器产生的随机数.或者使用真随机数产生器产生的随机数做种子,输入密码学安全的伪随机数产生器产生密码学安全随机数. 非物理真随机数产生器有:…
org.apache.catalina.util.SessionIdGeneratorBase.createSecureRandom Creation of SecureRandom instance for session ID generation using [SHA1PRNG] took [342,445] milliseconds. tomcat启动时间5分钟左右 打开  /java/jdk/jre/lib/security/java.security文件 securerandom.s…
Java7 的Random伪随机数和线程安全的ThreadLocalRandom 一.Random伪随机数: Random 类专门用于生成一个伪随机数,它有两个构造器: 一个构造器使用默认的种子(以当前时间作为种子) ,另 个构造器需要程序员显式传入一个 long 整数的种子. 当使用默认的种子或传入相同的种子构造 Random 对象时,它们属于同一个种子,只要两个 Random 对象的种子相同,而且方法的调用顺序也相同,它们就会产生相同的数字序列 也就是说, Random 产生的数字并不是真正…
启动慢的解决链接:  http://blog.csdn.net/u011627980/article/details/54024974…
最近在云服务器上部署tomcat的时候,执行 startup.sh老是卡住了. 开始以为是日志配的不对,因为在对象中引入的是slf4,不是apache的log4j,后面把所有引入的地方都修改为Apache的日志. 终于查看控制台的时候有了新发现. 从图中可以看到 SessionIdGeneratorBase创建一个实例时花了 349508毫秒. 通过搜这个class,才知道它是一个随机数策略类. 最终的解决办法是在catalina.sh中添加一行代码 -Djava.security.egd=fi…
有一次,我启动tomcat时,居然花费了33秒.我不理解为什么一个新的tomcat,需要这么久, 网上查找后,找到了一个解决方法. # vim /usr/local/tomcat/bin/catalina.sh --------------------------------------------------- JAVA_OPTS="-Djava.security.egd=file:/dev/./urandom" -----------------------------------…
https://my.oschina.net/wangnian/blog/687914…