可以使用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] + " ");
}
}