initSign(私钥私钥)
这个 initSign() 方法 JAVA安全供应商 类用于初始化此对象以进行签名。如果使用不同的参数再次调用此方法,则会否定此调用的效果。
null
语法:
public final void initSign(PrivateKey privateKey) throws InvalidKeyException
参数: 这种方法需要 私钥 将身份作为要生成其签名的参数 例外情况: 这个方法抛出 InvalidKeyException 如果密钥无效。
下面是演示initSign()方法的示例:
注: 以下程序将不会在联机IDE中运行
例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(); } } |
输出:
Signature:[-109, -21, 90, -114, -22,............, 92, 1]
例2: 显示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); } } } |
输出:
Trying to put null as private key Exception thrown : java.security.InvalidKeyException: Key must not be null
initSign(PrivateKey PrivateKey,SecureRandom)
这个 initSign() 方法 JAVA安全供应商 类用于初始化此对象以进行签名。如果使用不同的参数再次调用此方法,则会否定此调用的效果。
语法:
public final void initSign(PrivateKey privateKey, SecureRandom random) throws InvalidKeyException
参数: 此方法采用以下参数:
- 私钥 –将要生成签名的身份的私钥。
- 随机的 –该签名的随机性来源。
例外情况: 这个方法抛出 InvalidKeyException 如果密钥无效。
下面是说明sign()方法的示例:
注: 以下程序将不会在联机IDE中运行
例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(); } } |
输出:
Signature:[-121, -82, ............104, 114, -67]
例2: 显示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); } } } |
输出:
Trying to put the null as keyException thrown : java.security.InvalidKeyException: Key must not be null
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END