📜  Java中的 SecureRandom getSeed() 方法及示例

📅  最后修改于: 2022-05-13 01:54:44.055000             🧑  作者: Mango

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

Java.security.SecureRandom类的getSeed()方法用于返回给定的种子字节数,使用该类用于为自身播种的种子生成算法计算得出。此调用可用于播种其他随机数生成器。

仅包含此方法是为了向后兼容。鼓励调用者使用一种可选的 getInstance 方法来获取 SecureRandom 对象,然后调用 generateSeed 方法从该对象获取种子字节。

句法:

public static byte[] getSeed(int numBytes)

参数:该方法以种子字节数为参数生成。

返回值:此方法返回种子字节。

以下是说明 getSeed() 方法的示例:

示例 1:

// Java program to demonstrate
// getSeed() method
  
import java.security.*;
import java.util.*;
  
public class GFG1 {
    public static void main(String[] argv)
    {
        try {
            // creating the object of SecureRandom
            SecureRandom sr = SecureRandom.getInstance("SHA1PRNG");
  
            // getting the Provider of the SecureRandom sr
            // by using method getSeed()
            byte[] bb = sr.getSeed(5);
  
            // printing the byte array
            System.out.println("Seed Bytes : " + Arrays.toString(bb));
        }
  
        catch (NoSuchAlgorithmException e) {
  
            System.out.println("Exception thrown : " + e);
        }
    }
}

输出:

Seed Bytes : [1, 2, 3, 4, 1]

示例 2:

// Java program to demonstrate
// getSeed() method
  
import java.security.*;
import java.util.*;
  
public class GFG1 {
    public static void main(String[] argv)
    {
        try {
            // creating the object of SecureRandom
            SecureRandom sr = SecureRandom.getInstance("SHA1PRNG");
  
            // getting the Provider of the SecureRandom sr
            // by using method getSeed()
            byte[] bb = sr.getSeed(10);
  
            // printing the byte array
            System.out.println("Seed Bytes : " + Arrays.toString(bb));
        }
  
        catch (NoSuchAlgorithmException e) {
  
            System.out.println("Exception thrown : " + e);
        }
        catch (ProviderException e) {
  
            System.out.println("Exception thrown : " + e);
        }
    }
}

输出:

Seed Bytes : [-64, 79, 82, -118, -97, -95, -80, -101, -40, 12]

笔记:

  1. 上述程序将无法在在线 IDE 上运行。
  2. 每次 Secure Random 类都会产生随机输出。