Método SecureRandom getInstance() en Java con ejemplos

getInstance (algoritmo de string)

El método getInstance() de la clase java.security.SecureRandom se utiliza para devolver un objeto SecureRandom que implementa el algoritmo generador de números aleatorios (RNG) especificado.

Este método recorre la lista de proveedores de seguridad registrados, comenzando por el proveedor de mayor preferencia. Se devuelve un nuevo objeto SecureRandom que encapsula la implementación de SecureRandomSpi del primer proveedor que admite el algoritmo especificado.

Sintaxis:

public static SecureRandom 
getInstance( String algorithm ) 
throws NoSuchAlgorithmException

Parámetros: Este método toma el algoritmo RNG estándar como parámetro.

Valor devuelto: este método devuelve el nuevo objeto SecureRandom .

Excepción: este método arroja NoSuchAlgorithmException , si ningún proveedor admite una implementación de SecureRandomSpi para el algoritmo especificado.

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 getInstance() :

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 and getting instance
            // By using getInstance() method
            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 : [124, -66, -62, -5, -71, -4, 30, 16]

Ejemplo 2:

// Java program to demonstrate
// getInstance() method
  
import java.security.*;
import java.util.*;
  
public class GFG1 {
    public static void main(String[] argv)
    {
        try {
            // creating the object of SecureRandom and getting instance
            // By using getInstance() method
            System.out.println("Trying to get the instance of TAJMAHAL");
            SecureRandom sr = SecureRandom.getInstance("TAJMAHAL");
  
            // 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:

Trying to get the instance of TAJMAHAL
Exception thrown : java.security.NoSuchAlgorithmException: TAJMAHAL SecureRandom not available

getInstance (algoritmo de string, proveedor de proveedor)

El método getInstance() de la clase java.security.SecureRandom se utiliza para devolver un objeto SecureRandom que implementa el algoritmo generador de números aleatorios (RNG) especificado.
Se devuelve un nuevo objeto SecureRandom que encapsula la implementación de SecureRandomSpi del objeto Provider especificado. Tenga en cuenta que el objeto Proveedor especificado no tiene que estar registrado en la lista de proveedores.

El objeto SecureRandom devuelto no se sembró. Para inicializar el objeto devuelto, llame al método setSeed. Si no se llama a setSeed, la primera llamada a nextBytes forzará que el objeto SecureRandom se genere a sí mismo. Esta propagación automática no se producirá si se llamó previamente a setSeed.

Sintaxis:

public static SecureRandom 
getInstance( String algorithm, Provider provider )
throws NoSuchAlgorithmException

Parámetros: este método toma el siguiente argumento como parámetro

  • algoritmo: el nombre del algoritmo RNG.
  • proveedor – el proveedor.

Valor devuelto: este método devuelve el nuevo objeto SecureRandom .

Excepción: este método arroja la siguiente excepción

  • NoSuchAlgorithmException: si una implementación de SecureRandomSpi para el algoritmo especificado no está disponible desde el objeto de proveedor especificado.
  • IllegalArgumentException: si el proveedor especificado es nulo.
  • 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 getInstance() :

Ejemplo 1:

// Java program to demonstrate
// getInstance() method
  
import java.security.*;
import java.util.*;
  
public class GFG1 {
    public static void main(String[] argv)
    {
        try {
            // creating SecureRandom object
            SecureRandom sr1 = new SecureRandom(new byte[] { 1, 2, 3, 4 });
  
            // creating Provider object
            Provider pd = sr1.getProvider();
  
            // creating the object of SecureRandom and getting instance
            // By using getInstance() method
  
            SecureRandom sr = SecureRandom.getInstance("SHA1PRNG", pd);
  
            // 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 : [109, 55, 116, -15, -83, 126, -128, 88]

Nota: El siguiente programa produce la siguiente excepción en la
excepción IDE en línea lanzada: java.security.ProviderException: init fail

Ejemplo 2:

// Java program to demonstrate
// getInstance() method
  
import java.security.*;
import java.util.*;
  
public class GFG1 {
    public static void main(String[] argv)
    {
        try {
            // creating SecureRandom object
            SecureRandom sr1 = new SecureRandom(new byte[] { 1, 2, 3, 4 });
  
            // creating Provider object
            Provider pd = sr1.getProvider();
  
            // creating the object of SecureRandom and getting instance
            // By using getInstance() method
            System.out.println("Trying to getting the instance of TAJMAHAL ");
            SecureRandom sr = SecureRandom.getInstance("TAJMAHAL", pd);
  
            // 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:

Trying to getting the instance of TAJMAHAL
Exception thrown : java.security.NoSuchAlgorithmException: no such algorithm: TAJMAHAL for provider SUN

getInstance (algoritmo de string, proveedor de string)

El método getInstance() de la clase java.security.SecureRandom se utiliza para devolver un objeto SecureRandom que implementa el algoritmo generador de números aleatorios (RNG) especificado.

Se devuelve un nuevo objeto SecureRandom que encapsula la implementación de SecureRandomSpi del proveedor especificado. El proveedor especificado debe estar registrado en la lista de proveedores de seguridad.

Sintaxis:

public static SecureRandom 
getInstance( String algorithm, String provider )
throws NoSuchAlgorithmException, NoSuchProviderException

Parámetros: este método toma el siguiente argumento como parámetro

  • algoritmo : el nombre del algoritmo RNG. Consulte la sección SecureRandom en la Documentación de nombres de algoritmos estándar de la arquitectura de criptografía de Java para obtener información sobre los nombres de algoritmos RNG estándar.
  • proveedor: el nombre del proveedor.

Valor devuelto: este método devuelve el nuevo objeto SecureRandom .

Excepción: este método arroja la siguiente excepción

  • NoSuchAlgorithmException : si una implementación de SecureRandomSpi para el algoritmo especificado no está disponible del proveedor especificado.
  • NoSuchProviderException : si el proveedor especificado no está registrado en la lista de proveedores de seguridad.
  • IllegalArgumentException : si el nombre del proveedor es nulo o está vacío.

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 getInstance() :

Ejemplo 1:

// Java program to demonstrate
// getInstance() method
  
import java.security.*;
import java.util.*;
  
public class GFG1 {
    public static void
        main(String[] argv)
            throws NoSuchAlgorithmException,
                   NoSuchProviderException
    {
        try {
            // creating SecureRandom object
            SecureRandom sr1 = new SecureRandom(new byte[] { 1, 2, 3, 4 });
  
            // creating Provider object
            Provider pd = sr1.getProvider();
  
            // getting provider name
            // by using method getname()
            String provider = pd.getName();
  
            // getting algorithm name
            // by using     getAlgorithm() mathod
            String algo = sr1.getAlgorithm();
  
            // creating the object of SecureRandom and getting instance
            // By using getInstance() method
            SecureRandom sr = SecureRandom.getInstance(algo, provider);
  
            // 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 : [-11, 81, 39, 67, -95, -51, 115, -18]

Ejemplo 2:

// Java program to demonstrate
// getInstance() method
  
import java.security.*;
import java.util.*;
  
public class GFG1 {
    public static void
        main(String[] argv)
            throws NoSuchAlgorithmException,
                   NoSuchProviderException
    {
        try {
            // creating SecureRandom object
            SecureRandom sr1 = new SecureRandom(new byte[] { 1, 2, 3, 4 });
  
            // creating Provider object
            Provider pd = sr1.getProvider();
  
            // getting provider name
            // by using method getname()
            String provider = pd.getName();
  
            // creating the object of SecureRandom and getting instance
            // By using getInstance() method
            System.out.println("Trying to take TAJMAHAL as a algorithm");
            SecureRandom sr = SecureRandom.getInstance("TAJMAHAL", provider);
  
            // 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:

Trying to take TAJMAHAL as a algorithm
Exception thrown : java.security.NoSuchAlgorithmException: no such algorithm: TAJMAHAL for provider SUN

Ejemplo 3:

// Java program to demonstrate
// getInstance() method
  
import java.security.*;
import java.util.*;
  
public class GFG1 {
    public static void
        main(String[] argv)
            throws NoSuchAlgorithmException,
                   NoSuchProviderException
    {
        try {
            // creating SecureRandom object
            SecureRandom sr1 = new SecureRandom(new byte[] { 1, 2, 3, 4 });
  
            // getting algorithm name
            // by using     getAlgorithm() mathod
            String algo = sr1.getAlgorithm();
  
            // creating the object of SecureRandom and getting instance
            // By using getInstance() method
            System.out.println("Trying to taking MOON as a provider");
            SecureRandom sr = SecureRandom.getInstance(algo, "MOON");
  
            // 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 (NoSuchProviderException e) {
  
            System.out.println("Exception thrown : " + e);
        }
    }
}

Producción:

Trying to taking MOON as a provider
Exception thrown : java.security.NoSuchProviderException: no such provider: MOON

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 *