Java中的SecureRandom setSeed()方法

可以使用setSeed()java.security.SecureRandom类中的方法重新植入随机对象。该方法需要一个参数,即所需的种子字节数组,并返回重新播种的随机对象。

演示此的程序如下所示-

示例

import java.security.*;
import java.util.*;
public class Demo {
   public static void main(String[] argv) {
      try {
         SecureRandom sRandom = SecureRandom.getInstance("SHA1PRNG");
         String str = "Apple";
         byte[] arrB = str.getBytes();
         sRandom.setSeed(arrB);
         byte[] arrSeed = sRandom.getSeed(5);
         System.out.println("重新播种的Byte数组是:");
         for (int i = 0; i < arrSeed.length; i++) {
            System.out.print(arrSeed[i] + " ");
         }
      } catch (NoSuchAlgorithmException e) {
         System.out.println("Error!!! NoSuchAlgorithmException");
      } catch (ProviderException e) {
         System.out.println("Error!!! ProviderException");
      }
   }
}

输出结果

重新播种的Byte数组是:
-88 71 -32 -124 55

现在让我们了解上面的程序。

setSeed()方法用于重新设定随机对象的种子。然后显示重新播种的字节数组。演示此的代码片段如下-

try {
   SecureRandom sRandom = SecureRandom.getInstance("SHA1PRNG");
   String str = "Apple";
   byte[] arrB = str.getBytes();
   sRandom.setSeed(arrB);
   byte[] arrSeed = sRandom.getSeed(5);
   System.out.println("重新播种的Byte数组是:");
   for (int i = 0; i < arrSeed.length; i++) {
      System.out.print(arrSeed[i] + " ");
   }
}