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