initSign(Clave privada clave privada)
El método initSign() de la clase java.security.Provider se utiliza para inicializar este objeto para la firma. Si se vuelve a llamar a este método con un argumento diferente, se niega el efecto de esta llamada.
Sintaxis:
public final void initSign(PrivateKey privateKey) throws InvalidKeyException
Parámetros: Este método toma como parámetro la clave privada de la identidad cuya firma se va a generar
. Excepción: Este método lanza InvalidKeyException si la clave no es válida.
A continuación se muestran los ejemplos para ilustrar el método initSign():
Nota: El siguiente programa no se ejecutará en IDE en línea
Ejemplo 1:
Java
// Java program to demonstrate // initSign() method import java.security.*; import java.util.*; import sun.misc.BASE64Encoder; public class GFG1 { public static void main(String[] argv) throws Exception { try { // calling getKeyPair() method and assigning in keypair KeyPair keyPair = getKeyPair(); // creating byte array object byte[] outbuff = new byte[1000]; // data to be updated byte[] data = "test".getBytes("UTF8"); // creating the object of Signature Signature sr = Signature.getInstance("SHA1WithRSA"); // initializing the signature object with key pair // for signing // Using method initSign sr.initSign(keyPair.getPrivate()); // updating the data sr.update(data); // getting the signature byte // of an signing operation // by using method sign() byte[] bytes = sr.sign(); // printing the number of byte System.out.println("Signature:" + Arrays.toString(bytes)); } catch (NoSuchAlgorithmException e) { System.out.println("Exception thrown : " + e); } catch (SignatureException e) { System.out.println("Exception thrown : " + e); } } // defining getKeyPair method private static KeyPair getKeyPair() throws NoSuchAlgorithmException { // creating the object of KeyPairGenerator KeyPairGenerator kpg = KeyPairGenerator.getInstance("RSA"); // initializing with 1024 kpg.initialize(1024); // returning the key pairs return kpg.genKeyPair(); } }
Producción:
Signature:[-109, -21, 90, -114, -22, .... .... ...., 92, 1]
Ejemplo 2: Para mostrar InvalidKeyException
Java
// Java program to demonstrate // initSign() method import java.security.*; import java.util.*; public class GFG1 { public static void main(String[] argv) throws Exception { try { // data to be updated byte[] data = "test".getBytes("UTF8"); // creating the object of Signature Signature sr = Signature.getInstance("SHA1WithRSA"); // initializing the signature object with key pair // for signing // Using method initSign System.out.println("Trying to put null as private key "); sr.initSign(null); // updating the data sr.update(data); // getting the signature byte // of an signing operation // by using method sign() byte[] bytes = sr.sign(); // printing the number of byte System.out.println("Signature:" + Arrays.toString(bytes)); } catch (NoSuchAlgorithmException e) { System.out.println("Exception thrown : " + e); } catch (SignatureException e) { System.out.println("Exception thrown : " + e); } catch (InvalidKeyException e) { System.out.println("Exception thrown : " + e); } } }
Producción:
Trying to put null as private key Exception thrown : java.security.InvalidKeyException: Key must not be null
initSign(PrivateKey privateKey, SecureRandom aleatorio)
El método initSign() de la clase java.security.Provider se utiliza para inicializar este objeto para la firma. Si se vuelve a llamar a este método con un argumento diferente, se niega el efecto de esta llamada.
Sintaxis:
public final void initSign(PrivateKey privateKey, SecureRandom random) throws InvalidKeyException
Parámetros: Este método toma los siguientes parámetros:
- privateKey : la clave privada de la identidad cuya firma se va a generar.
- aleatorio : la fuente de aleatoriedad para esta firma.
Excepción: este método arroja InvalidKeyException si la clave no es válida.
A continuación se muestran los ejemplos para ilustrar el método sign():
Nota: El siguiente programa no se ejecutará en IDE en línea
Ejemplo 1:
Java
// Java program to demonstrate // sign() method import java.security.*; import java.util.*; import sun.misc.BASE64Encoder; public class GFG1 { public static void main(String[] argv) throws Exception { try { // calling getKeyPair() method and assigning in keypair KeyPair keyPair = getKeyPair(); // creating byte array object byte[] outbuff = new byte[1000]; // data to be updated byte[] data = "test".getBytes("UTF8"); // creating the object of Signature Signature sr = Signature.getInstance("SHA1WithRSA"); // creating the object of SecureRandom SecureRandom sb = SecureRandom.getInstance("SHA1PRNG"); // initializing the signature object with key pair // for signing sr.initSign(keyPair.getPrivate(), sb); // updating the data sr.update(data); // getting the signature byte // of an signing operation // by using method sign() byte[] bytes = sr.sign(); // printing the number of byte System.out.println("Signature:" + Arrays.toString(bytes)); } catch (NoSuchAlgorithmException e) { System.out.println("Exception thrown : " + e); } catch (SignatureException e) { System.out.println("Exception thrown : " + e); } } // defining getKeyPair method private static KeyPair getKeyPair() throws NoSuchAlgorithmException { // creating the object of KeyPairGenerator KeyPairGenerator kpg = KeyPairGenerator.getInstance("RSA"); // initializing with 1024 kpg.initialize(1024); // returning the key pairs return kpg.genKeyPair(); } }
Producción:
Signature:[-121, -82, .... .... ....104, 114, -67]
Ejemplo 2: Para mostrar InvalidKeyException
Java
// Java program to demonstrate // initSign() method import java.security.*; import java.util.*; public class GFG1 { public static void main(String[] argv) throws Exception { try { // creating byte array object byte[] outbuff = new byte[1000]; // data to be updated byte[] data = "test".getBytes("UTF8"); // creating the object of Signature Signature sr = Signature.getInstance("SHA1WithRSA"); // creating the object of SecureRandom SecureRandom sb = SecureRandom.getInstance("SHA1PRNG"); // initializing the signature object with null key pair // for signing using initSign() method System.out.println("Trying to put the null as key"); sr.initSign(null, sb); // updating the data sr.update(data); // getting the signature byte // of an signing operation // by using method sign() byte[] bytes = sr.sign(); // printing the number of byte System.out.println("Signature:" + Arrays.toString(bytes)); } catch (NoSuchAlgorithmException e) { System.out.println("Exception thrown : " + e); } catch (InvalidKeyException e) { System.out.println("Exception thrown : " + e); } } }
Producción:
Trying to put the null as key Exception thrown : java.security.InvalidKeyException: Key must not be null
Publicación traducida automáticamente
Artículo escrito por RohitPrasad3 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA