我是靠谱客的博主 害怕云朵,这篇文章主要介绍java SecureRandom.getInstanceStrong()随机数的深坑,现在分享给大家,希望可以做个参考。

1、在获取随机数时,使用new Random()写发时,在sonar扫描提示建议使用SecureRandom.getInstanceStrong()语法获取。在本地windows上该语法还没有问题,但是在linux上执行的时候,时不时就会线程阻塞,也算是一个埋得比较深的坑。

2、SecureRandom.getInstanceStrong()造成阻塞的原因:在不同的系统环境执行的底层代码不相同,在linux系统中通过底层NativePRNG方法,通过/dev/random方式读取随机数,/dev/random方式受系统环境的影响容易造成线程阻塞;在windows系统中通过generateSeed的native方法读取,不会阻塞线程。

3、解决方法
推荐使用:new SecureRandom()获取SecureRandom, linux下从/dev/urandom读取. 虽然是伪随机, 但大部分场景下都满足。

学海无涯苦作舟!!!

最后

以上就是害怕云朵最近收集整理的关于java SecureRandom.getInstanceStrong()随机数的深坑的全部内容,更多相关java内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(41)

评论列表共有 0 条评论

立即
投稿
返回
顶部