Método Java Signature getInstance() con ejemplos

getInstance (algoritmo de string)

El método getInstance() de la clase java.security.Provider se utiliza para devolver un objeto Signature que implementa el algoritmo de firma especificado.

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

Sintaxis: 

public static Signature getInstance(String algorithm)
    throws NoSuchAlgorithmException

Parámetros: Este método toma el nombre estándar de Algoritmo como parámetro.
Valor de retorno: este método devuelve el nuevo objeto Signature.
Excepción: este método arroja NoSuchAlgorithmException si ningún proveedor admite una implementación de firma para el algoritmo especificado.

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

Ejemplo 1:  

Java

// 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 Signature and getting instance
            // By using getInstance() method
            Signature sr = Signature.getInstance("SHA1WithRSA");
 
            // getting the status of signature object
            String str = sr.toString();
 
            // printing the status
            System.out.println("Status : " + str);
        }
 
        catch (NoSuchAlgorithmException e) {
 
            System.out.println("Exception thrown : " + e);
        }
        catch (ProviderException e) {
 
            System.out.println("Exception thrown : " + e);
        }
    }
}
Producción: 

Status : Signature object: SHA1WithRSA

 

Ejemplo 2: Para mostrar NoSuchAlgorithmException 

Java

// 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 Signature and getting instance
            // By using getInstance() method
            System.out.println("Trying to get the instance of unknown instance");
            Signature sr = Signature.getInstance("TAJMAHAL");
 
            // getting the status of signature object
            String str = sr.toString();
 
            // printing the status
            System.out.println("Status : " + str);
        }
 
        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 unknown instance
Exception thrown : java.security.NoSuchAlgorithmException: TAJMAHAL Signature not available

 

Firma getInstance (algoritmo de string, proveedor proveedor)

El método getInstance() de la clase java.security.Provider se utiliza para Devuelve un objeto Signature que implementa el algoritmo de firma especificado.

Se devuelve un nuevo objeto Signature que encapsula la implementación SignatureSpi del objeto Provider especificado. Tenga en cuenta que el objeto Proveedor especificado no tiene que estar registrado en la lista de proveedores.

Sintaxis:  

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

Parámetros: este método toma los siguientes argumentos como parámetros:  

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

Valor de retorno: este método devuelve el nuevo objeto Signature.

Excepción: este método arroja las siguientes excepciones:  

  • NoSuchAlgorithmException : si una implementación de SignatureSpi para el algoritmo especificado no está disponible desde el objeto de proveedor especificado.
  • IllegalArgumentException : si el proveedor es nulo.

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

Ejemplo 1: 

Java

// 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 Signature and getting instance
            // By using getInstance() method
            Signature sr = Signature.getInstance("SHA1WithRSA");
 
            // creating Provider object
            Provider pd = sr.getProvider();
 
            // getting algorithm name
            // by using     getAlgorithm() method
            String algo = sr.getAlgorithm();
 
            // creating the object of Signature and getting instance
            // By using getInstance() method
            Signature sr1 = Signature.getInstance(algo, pd);
 
            // getting the status of signature object
            String str = sr1.toString();
 
            // printing the status
            System.out.println("Status : " + str);
        }
 
        catch (NoSuchAlgorithmException e) {
 
            System.out.println("Exception thrown : " + e);
        }
        catch (ProviderException e) {
 
            System.out.println("Exception thrown : " + e);
        }
    }
}
Producción: 

Status : Signature object: SHA1WithRSA

 

Ejemplo 2: Para mostrar NoSuchAlgorithmException

Java

// 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 Signature and getting instance
            // By using getInstance() method
            Signature sr = Signature.getInstance("SHA1WithRSA");
 
            // creating Provider object
            Provider pd = sr.getProvider();
 
            // getting algorithm name
            // by using     getAlgorithm() method
            String algo = sr.getAlgorithm();
 
            // creating the object of Signature and getting instance
            // By using getInstance() method
            Signature sr1 = Signature.getInstance("TAJMAHAL", pd);
 
            // getting the status of signature object
            String str = sr1.toString();
 
            // printing the status
            System.out.println("Status : " + str);
        }
 
        catch (NoSuchAlgorithmException e) {
 
            System.out.println("Exception thrown : " + e);
        }
        catch (ProviderException e) {
 
            System.out.println("Exception thrown : " + e);
        }
    }
}
Producción: 

Exception thrown : java.security.NoSuchAlgorithmException: no such algorithm: TAJMAHAL for provider SunRsaSign

 

Ejemplo 3: Para mostrar IllegalArgumentException 

Java

// 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 Signature and getting instance
            // By using getInstance() method
            Signature sr = Signature.getInstance("SHA1WithRSA");
 
            // creating Provider object
            Provider pd = null;
 
            // getting algorithm name
            // by using     getAlgorithm() method
            String algo = sr.getAlgorithm();
 
            // creating the object of Signature and getting instance
            // By using getInstance() method
            Signature sr1 = Signature.getInstance(algo, pd);
 
            // getting the status of signature object
            String str = sr1.toString();
 
            // printing the status
            System.out.println("Status : " + str);
        }
 
        catch (NoSuchAlgorithmException e) {
 
            System.out.println("Exception thrown : " + e);
        }
        catch (ProviderException e) {
 
            System.out.println("Exception thrown : " + e);
        }
        catch (IllegalArgumentException e) {
 
            System.out.println("Exception thrown : " + e);
        }
    }
}
Producción: 

Exception thrown : java.lang.IllegalArgumentException: missing provider

 

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 *