Java中的SecureRandom nextBytes()方法及其示例

这个 下字节() 方法 JAVA安全安全随机 类用于生成用户指定数量的随机字节。

null

如果之前没有调用setSeed,那么对该方法的第一次调用将强制该SecureRandom对象自身进行种子设定。如果之前调用setSeed,则不会发生这种自播种。

语法:

public void nextBytes(byte[] bytes)

参数: 该方法以随机字节填充的数组为参数。

注:

  1. 这些程序不会在在线IDE上运行。
  2. 每次安全随机类都会生成随机输出。

下面是一些例子来说明 下字节() 方法:

例1:

// Java program to demonstrate
// nextBytes() 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" );
// Declaring the string variable
String str = "Tajmahal" ;
// Declaring the byte Array
// converting string into byte
byte [] b = str.getBytes();
// printing the byte array
System.out.println( "Byte array before operation : " + Arrays.toString(b));
// generating user-specified number of random bytes
// using nextBytes() method
sr.nextBytes(b);
// printing the new byte array
System.out.println( "Byte array after operation : " + Arrays.toString(b));
}
catch (NoSuchAlgorithmException e) {
System.out.println( "Exception thrown : " + e);
}
catch (ProviderException e) {
System.out.println( "Exception thrown : " + e);
}
}
}


输出:

Byte array before operation : [84, 97, 106, 109, 97, 104, 97, 108]
Byte array after operation : [-79, -110, -18, -31, -54, -36, 63, -61]

注: 以下程序在Geeksforgeks IDE上引发以下异常,但它将在任何命令提示符(JDK)上高效运行

Exception thrown : java.security.ProviderException: init failed

例2:

// Java program to demonstrate
// nextBytes() method
import java.security.*;
import java.util.*;
public class GFG1 {
public static void main(String[] argv)
{
try {
// creating the object of SecureRandom
SecureRandom sr = new SecureRandom( new byte [] { 1 , 2 , 3 , 4 });
// Declaring the string variable
String str = "Tajmahal" ;
// Declaring the byte Array b
byte [] b = str.getBytes();
// printing the byte array
System.out.println( "Byte array before operation : " + Arrays.toString(b));
// generating user-specified number of random bytes
// using nextBytes() method
sr.nextBytes(b);
// printing the new byte array
System.out.println( "Byte array after operation : " + Arrays.toString(b));
}
catch (ProviderException e) {
System.out.println( "Exception thrown : " + e);
}
}
}


输出:

Byte array before operation : [84, 97, 106, 109, 97, 104, 97, 108]
Byte array after operation : [-14, 77, 123, 121, 116, 50, -89, -86]
© 版权声明
THE END
喜欢就支持一下吧
点赞9 分享