Método KeyPairGenerator getInstance() en Java con ejemplos

getInstance (algoritmo de string)

El método getInstance() de la clase java.security.KeyPairGenerator se utiliza para devolver un objeto KeyPairGenerator que genera pares de claves pública/privada para el algoritmo especificado.

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

Sintaxis:

public static KeyPairGenerator 
    getInstance(String algorithm)
        throws NoSuchAlgorithmException

Parámetros: Este método toma el nombre estándar de Algoritmo como parámetro.

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

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 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
            // KeyPairGenerator
            // and getting instance
            // using getInstance() method
            KeyPairGenerator sr = KeyPairGenerator.getInstance("DSA");
  
            // getting the Algorithm
            String algo = sr.getAlgorithm();
  
            // printing the algo String
            System.out.println("Algorithm : " + algo);
        }
  
        catch (NoSuchAlgorithmException e) {
  
            System.out.println("Exception thrown : " + e);
        }
        catch (ProviderException e) {
  
            System.out.println("Exception thrown : " + e);
        }
    }
}
Producción:

Algorithm : DSA

Ejemplo 2: Para mostrar NoSuchAlgorithmException

// 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
            // KeyPairGenerator
            // and getting instance
            // using getInstance() method
  
            System.out.println("Trying to get"
                               + " the instance of unknown Algorithm");
  
            KeyPairGenerator sr = KeyPairGenerator
                                      .getInstance("TAJMAHAL");
  
            // getting the Algorithm
            String algo = sr.getAlgorithm();
  
            // printing the algo String
            System.out.println("Algorithm : " + algo);
        }
  
        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 Algorithm
Exception thrown : java.security.NoSuchAlgorithmException: TAJMAHAL KeyPairGenerator not available

getInstance (algoritmo de string, proveedor de proveedor)

El método getInstance() de la clase java.security.KeyPairGenerator se utiliza para devolver un objeto KeyPairGenerator que genera pares de claves pública/privada para el algoritmo especificado.
Se devuelve un nuevo objeto KeyPairGenerator que encapsula la implementación KeyPairGeneratorSpi 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 KeyPairGenerator 
    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 devuelto: este método devuelve el nuevo objeto KeyPairGenerator.

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

    Nota: El siguiente programa no se ejecutará en IDE en línea.

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

    Keypair : java.security.KeyPair@12a3a380
    

    Ejemplo 2: Para mostrar NoSuchAlgorithmException

    // 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
                // KeyPairGenerator
                // and getting instance
                // using getInstance() method
                KeyPairGenerator sr = KeyPairGenerator.getInstance("DSA");
      
                // creating Provider object
                Provider pd = sr.getProvider();
      
                // creating the object of KeyPairGenerator and getting instance
                // By usng getInstance() method
                KeyPairGenerator sr1 = KeyPairGenerator.getInstance("TAJMAHAL", pd);
      
                // getting the status of signature object
                KeyPair keypair = sr1.generateKeyPair();
      
                // printing the keypair
                System.out.println("Keypair : " + keypair);
            }
      
            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 SUN
    

    Ejemplo 3: Para mostrar IllegalArgumentException

    // 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
                // KeyPairGenerator
                // and getting instance
                // using getInstance() method
                KeyPairGenerator sr = KeyPairGenerator
                                          .getInstance("RSA");
      
                // creating Provider object
                System.out.println("Trying to assign null as a provider");
                Provider pd = null;
      
                // getting algorithm name
                // by using     getAlgorithm() mathod
                String algo = sr.getAlgorithm();
      
                // creating the object of KeyPairGenerator and getting instance
                // By usng getInstance() method
                KeyPairGenerator sr1 = KeyPairGenerator
                                           .getInstance(algo, pd);
      
                // getting the status of signature object
                KeyPair keypair = sr1.generateKeyPair();
      
                // printing the keypair
                System.out.println("Keypair : " + keypair);
            }
      
            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:

    Trying to assign null as a provider
    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 *