1. 解释
Fortify漏洞:Insecure Randomness(不安全随机数)指的是代码中使用了不安全或弱随机数生成器导致的安全漏洞。随机数在密码学应用、加密和解密等领域中经常被使用,如果生成的随机数不够随机或不够复杂,则会使得攻击者可以轻易地猜出生成的随机数,从而对系统造成威胁。因此,在安全敏感的应用中,必须使用安全的随机数生成器。
2. 漏洞出现原因
Random random = new Random();
3. 解决方法
Insecure Randomness,需要使用一个安全的随机数生成器来替换当前使用的不安全的随机数生成器。Java中提供了一些安全的随机数生成器,如SecureRandom类。
SecureRandom类是Java提供的安全随机数生成器。它利用了操作系统提供的真正随机数种子源,以及其他随机性产生器,生成更加随机和复杂的随机数。使用SecureRandom类生成随机数时,请勿使用默认构造函数,因为它将基于本地时间作为种子生成伪随机数。相反,请使用带有种子参数的构造函数或getInstance()方法创建一个安全的随机数生成器。
//需要换成 SecureRandom sr = new SecureRandom()即可