欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

JDK中的随机数机制探究 博客分类: J2SErandomurandomjava jdkjavarandomurandom 

程序员文章站 2024-03-01 23:04:46
...
    今天有同事问起关于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指标。