概述
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 SecureRandom.getInstanceStrong()随机数的深坑所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复