JDK中的随机数机制探究

2 篇文章 0 订阅
1 篇文章 0 订阅
今天有同事问起关于JDK1.8中默认是random问题。
JDK1.8中的java security默认变成random了,JDK1.6和JDK1.7中的java security默认是urandom。

这里就详细探究一下JDK中random与urandom的关系。
首先:random是阻塞机制的,urandom是非阻塞机制的。
其次:urandom最终是调用random的。
最后:random的实现机制是收集操作系统的动态指标并形成UltraTree,UltraTree分支越深越复杂random形成的就越快。

根据上面的三点可以看出,random本身可以生成随机数,但需要操作系统的CPU、Memory、Disk比较忙碌的情况下才会快,否则就需要用urandom这种非阻塞机制函数来生成随机数。

如果非得用random来生成随机数,就要不停的移动鼠标来形成UltraTree。

笔者这里说一个实例,有朋友用Putty生成过安全key吗?在生成的过程中要把鼠标放到空白区域不停的滑动才会生成的快,这个原理也是在收集系统的UltraTree指标。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值