Método KeyFactory generarPrivate() en Java con ejemplos

El método generatePrivate() de la clase java.security.KeyPairGenerator se utiliza para generar un objeto de clave privada a partir de la especificación de clave proporcionada (material de clave).

Sintaxis:

public final PrivateKey generatePrivate(KeySpec keySpec)
                                 throws InvalidKeySpecException

Parámetros: este método toma keySpec (la especificación (material clave) de la clave privada) como parámetro.

Valor devuelto: este método devuelve la clave privada.

Excepción: este método arroja una excepción InvalidKeySpecException si la especificación de la clave dada no es adecuada para que esta fábrica de claves genere una clave privada.

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

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

Ejemplo 1:

// Java program to demonstrate
// generatePrivate() method
  
import java.security.*;
import java.util.*;
import java.security.spec.*;
  
public class GFG1 {
    public static void main(String[] argv) throws Exception
    {
        try {
  
            // creating the object of KeyPairGenerator
            KeyPairGenerator kpg = KeyPairGenerator
                                       .getInstance("DSA");
  
            // initializing with 1024
            kpg.initialize(1024);
  
            // getting key pairs
            // using generateKeyPair() method
            KeyPair kp = kpg.genKeyPair();
  
            // getting public key
            PrivateKey prv = kp.getPrivate();
  
            // getting byte data of private key
            byte[] private KeyBytes = prv.getEncoded();
  
            // creating keyspec object
            EncodedKeySpec
                private KeySpec
                = new PKCS8EncodedKeySpec(private KeyBytes);
  
            // creating object of keyfactory
            KeyFactory keyFactory = KeyFactory.getInstance("DSA");
  
            // generating private key from the provided key spec.
            // using generatePrivate() method
            PrivateKey private Key = keyFactory
                                        .generatePrivate(private KeySpec);
  
            // printing private key
            System.out.println("PrivateKey : " + private Key);
        }
  
        catch (NoSuchAlgorithmException e) {
  
            System.out.println("Exception thrown : " + e);
        }
        catch (ProviderException e) {
  
            System.out.println("Exception thrown : " + e);
        }
    }
}
Producción:

PrivateKey : sun.security.provider.DSAPrivateKey@fff96ed9

Ejemplo 2: para InvalidKeySpecException

// Java program to demonstrate
// generatePrivate() method
  
import java.security.*;
import java.util.*;
import java.security.spec.*;
  
public class GFG1 {
    public static void main(String[] argv) throws Exception
    {
        try {
  
            // creating the object of KeyPairGenerator
            KeyPairGenerator kpg = KeyPairGenerator
                                       .getInstance("DSA");
  
            // initializing with 1024
            kpg.initialize(1024);
  
            // getting key pairs
            // using generateKeyPair() method
            KeyPair kp = kpg.genKeyPair();
  
            // getting public key
            PrivateKey prv = kp.getPrivate();
  
            // getting byte data of private key
            byte[] private KeyBytes = prv.getEncoded();
  
            // creating keyspec object
            EncodedKeySpec
                private KeySpec
                = new X509EncodedKeySpec(private KeyBytes);
  
            // creating object of keyfactory
            KeyFactory keyFactory = KeyFactory.getInstance("DSA");
  
            // generating private key from the provided key spec.
            // using generatePrivate() method
            PrivateKey private Key = keyFactory
                                        .generatePrivate(private KeySpec);
  
            // printing private key
            System.out.println("Private Key : " + private Key);
        }
  
        catch (NoSuchAlgorithmException e) {
  
            System.out.println("Exception thrown : " + e);
        }
        catch (ProviderException e) {
  
            System.out.println("Exception thrown : " + e);
        }
        catch (InvalidKeySpecException e) {
  
            System.out.println("Exception thrown : " + e);
        }
    }
}
Producción:

Exception thrown : java.security.spec.InvalidKeySpecException:
 Inappropriate key specification

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 *