异常Sonar提示严重的错误,内容为Save and re-use this “Random“,需要使用SecureRandom替换Random

一、报错内容

在这里插入图片描述

二、报错说明

2.1 Random和SecureRandom的区别

Random生成伪随机数,这意味着这些数字并不是真正的随机数,而是由算法生成的。
如果攻击者知道生成这些数字的算法,那么Random生成的数字就可以被预测,因此不适用于安全敏感的应用程序。

SecureRandom生成具有密码学安全性的随机数,这意味着这些数字是使用安全算法生成的,这些算法被设计成不可预测。因此,它适用于安全敏感的应用程序,例如生成加密密钥或密码。

SecureRandom比Random慢,因为它使用更复杂的算法生成随机数。
但是,在安全敏感的应用程序中,增加的安全性值得在性能成本方面进行权衡。

如果需要为安全敏感的应用程序生成随机数,则应使用SecureRandom。
如果只需要为非安全敏感的应用程序生成随机数,则Random就足够了。

2.2 如何使用Random和SecureRandom

在Java中,您可以通过创建类的实例并调用其nextInt()方法来使用Random。例如:

import java.util.Random;

Random random = new Random();
int randomNumber = random.nextInt();

要使用SecureRandom,您可以创建类的实例并以与Random相同的方式调用其nextInt()方法。例如:

import java.security.SecureRandom;

SecureRandom secureRandom = new SecureRandom();
int randomNumber = secureRandom.nextInt();

三、报错解决

直接替换为SecureRandom 即可

在这里插入图片描述