带有示例的Java签名 initSign() 方法
initSign(PrivateKey privateKey)
Java.security.Provider类的initSign()方法用于初始化此对象以进行签名。如果使用不同的参数再次调用此方法,它将否定此调用的效果。
句法:
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();
}
}
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);
}
}
}
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();
}
}
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);
}
}
}
输出:
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 随机)
Java.security.Provider类的initSign()方法用于初始化此对象以进行签名。如果使用不同的参数再次调用此方法,它将否定此调用的效果。
句法:
public final void
initSign(PrivateKey privateKey, SecureRandom random)
throws InvalidKeyException
参数:此方法采用以下参数:
- privateKey – 将要生成其签名的身份的私钥。
- random – 此签名的随机性来源。
异常:如果密钥无效,此方法将引发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 key
Exception thrown : java.security.InvalidKeyException: Key must not be null