Random random = SecureRandom.getInstanceStrong();堵塞线程问题解决

在这里插入图片描述

sonar扫描到使用Random随机函数不安全, 推荐使用SecureRandom替换,就是他–》【SecureRandom.getInstanceStrong()】,分别在本地,测试环境测过没问题上生产,但是运行了一段时间突然报错!!!

然后还是像那个博主一样,一段一段代码的注释上测试环境才发现问题在哪里,坑就坑在这,在win10环境正常得很,一到linux上面就和个发病的一样生成随机数字卡顿,导致接口请求无响应

最后还是换了个实现方式,sonar扫描后也没问题结尾

sonar推荐的不一定都是适合自己业务场景,只是站在了技术层面考虑,推荐的东西自己还是要慎用!!

有问题的代码:

Random random = SecureRandom.getInstanceStrong();
//把随机生成的数字转成字符串
String code = String.valueOf(random.nextInt(9));
for (int i = 0; i < Constants.5; i++) {
    code += random.nextInt(9);
}
log.info("{}",code);

最后改好的:

int code = (int) ((Math.random() * 9 + 1) * 100000);
String codeStr = String.valueOf(code);
log.info("{}",codeStr );

具体为什么使用【Random random = SecureRandom.getInstanceStrong();】会报错,可以转移到博主文章看看
https://blog.csdn.net/weixin_45244678/article/details/106137948

就先说到这 \color{#008B8B}{ 就先说到这} 就先说到这
在下 A p o l l o \color{#008B8B}{在下Apollo} 在下Apollo
一个爱分享 J a v a 、生活的小人物, \color{#008B8B}{一个爱分享Java、生活的小人物,} 一个爱分享Java、生活的小人物,
咱们来日方长,有缘江湖再见,告辞! \color{#008B8B}{咱们来日方长,有缘江湖再见,告辞!} 咱们来日方长,有缘江湖再见,告辞!

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Random类是Java中用于生成随机数的一个工具类。它可以生成伪随机数序列,可以用于各种需要随机数的场景,比如游戏、密码生成等。 要使用Random类,首先需要创建一个Random对象。可以使用无参构造方法创建一个默认的Random对象,也可以使用带有种子参数的构造方法创建一个指定种子的Random对象。种子是一个长整型数值,用于初始化随机数生成器的起始状态。 一旦创建了Random对象,就可以使用它的方法来生成随机数。常用的方法有: 1. nextInt():生成一个int类型的随机数。 2. nextDouble():生成一个double类型的随机数。 3. nextBoolean():生成一个boolean类型的随机数。 4. nextFloat():生成一个float类型的随机数。 5. nextLong():生成一个long类型的随机数。 下面是一个示例代码,演示如何使用Random类生成随机数: ```java import java.util.Random; public class RandomExample { public static void main(String[] args) { Random random = new Random(); int randomNumber = random.nextInt(100); // 生成0到99之间的随机整数 System.out.println("随机整数:" + randomNumber); double randomDouble = random.nextDouble(); // 生成0.0到1.0之间的随机小数 System.out.println("随机小数:" + randomDouble); boolean randomBoolean = random.nextBoolean(); // 生成随机的布尔值 System.out.println("随机布尔值:" + randomBoolean); } } ``` 需要注意的是,Random类生成的是伪随机数,也就是说它们是通过算法计算得到的,并不是真正的随机数。如果需要更高质量的随机数,可以考虑使用SecureRandom类。此外,在多线程环境下使用Random类时,需要注意线程安全性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值