📌  相关文章
📜  Java中的 SecureRandom getInstance() 方法及示例(1)

📅  最后修改于: 2023-12-03 15:16:26.287000             🧑  作者: Mango

Java中的 SecureRandom getInstance() 方法及示例

SecureRandom getInstance() 方法是Java提供的产生安全随机数的方法之一。该方法返回一个SecureRandom对象,可以用来产生伪随机数序列。SecureRandom对象实例化后,可以使用nextInt()、nextLong()等方法获取随机数。

语法
public static SecureRandom getInstance(String algorithm) throws NoSuchAlgorithmException
参数
  • algorithm:指定产生随机数的算法,例如:SHA1PRNG、NativePRNG、Windows-PRNG、DRBG、SHA1PRNG+OAEP等。
返回值
  • SecureRandom对象,可以用来产生伪随机数序列。
示例
import java.security.NoSuchAlgorithmException;
import java.security.SecureRandom;

public class SecureRandomExample {
    public static void main(String[] args) {
        // 实例化SecureRandom对象
        SecureRandom secureRandom = null;
        try {
            secureRandom = SecureRandom.getInstance("SHA1PRNG");
        } catch (NoSuchAlgorithmException e) {
            System.out.println("Error: " + e.getMessage());
        }
        
        // 生成随机数
        System.out.println("随机整数:" + secureRandom.nextInt());
        System.out.println("随机长整数:" + secureRandom.nextLong());
        byte[] bytes = new byte[20];
        secureRandom.nextBytes(bytes);
        System.out.print("随机字节数组:");
        for (byte b : bytes) {
            System.out.print(b + " ");
        }
    }
}
运行结果

随机整数:24415881 随机长整数:2128459433374129573 随机字节数组:-45 -114 26 -53 -114 91 -3 -92 9 114 -25 -39 52 -17 -29 46 46 -12 62 -20

以上示例中,我们选择了SHA1PRNG算法来产生随机数。通过实例化SecureRandom对象并调用nextInt()、nextLong()等方法,我们可以生成伪随机数序列。此外,我们还使用nextBytes()方法获取随机字节数组。通过循环遍历字节数组,可以发现字节数组中每个元素的值都是随机的。

总之,SecureRandom getInstance() 方法是Java提供的自动生成安全随机数的一种方式,可以有效避免随机数生成过程中的伪随机现象,保证生成的随机数的安全性和不可预测性。