Método SecureRandom nextBytes() en Java con ejemplos

El método nextBytes() de la clase java.security.SecureRandom se utiliza para generar un número de bytes aleatorios especificado por el usuario.

Si no se ha producido una llamada a setSeed anteriormente, la primera llamada a este método fuerza a este objeto SecureRandom a que se genere a sí mismo. Esta propagación automática no se producirá si se llamó previamente a setSeed.

Sintaxis:

public void nextBytes(byte[] bytes)

Parámetros: este método toma como parámetro la array que se completará con bytes aleatorios.

Nota:

  1. Los programas no se ejecutarán en IDE en línea.
  2. Cada vez que la clase Secure Random generará una salida aleatoria.

A continuación se muestran los ejemplos para ilustrar el método nextBytes() :

Ejemplo 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);
        }
    }
}

Producción:

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

Nota: El siguiente programa arroja la siguiente excepción en el IDE de GeeksForGeeks, pero se ejecutará de manera eficiente en cualquier símbolo del sistema (JDK)

Exception thrown : java.security.ProviderException: init failed

Ejemplo 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);
        }
    }
}

Producción:

Byte array before operation : [84, 97, 106, 109, 97, 104, 97, 108]
Byte array after operation : [-14, 77, 123, 121, 116, 50, -89, -86]

Publicación traducida automáticamente

Artículo escrito por RohitPrasad3 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *