📄 digitalsignature2example.java
字号:
package cn.cncrypt.test;
/**
*DigitalSignature2Example.java
*Copyright 2005-2-16
*/
import java.security.Signature;
import java.security.KeyPairGenerator;
import java.security.KeyPair;
import java.security.SignatureException;
/**
* 数字签名,使用RSA私钥对对消息摘要签名,然后使用公鈅验证 测试
*/
public class DigitalSignature2Example {
public static void main(String[] args) throws Exception {
if (args.length != 1) {
System.err.println("Usage:java DigitalSignature2Example ");
System.exit(1);
}
byte[] plainText = args[0].getBytes("UTF8");
// 形成RSA公钥对
System.out.println(" Start generating RSA key");
KeyPairGenerator keyGen = KeyPairGenerator.getInstance("RSA");
keyGen.initialize(1024);
KeyPair key = keyGen.generateKeyPair();
System.out.println("Finish generating RSA key");
// 使用私鈅签名
Signature sig = Signature.getInstance("SHA1WithRSA");
sig.initSign(key.getPrivate());
sig.update(plainText);
byte[] signature = sig.sign();
System.out.println(sig.getProvider().getInfo());
System.out.println(" Signature:");
System.out.println(new String(signature, "UTF8"));
// 使用公鈅验证
System.out.println(" Start signature verification");
Signature sig1 = Signature.getInstance("SHA1WithRSA");
sig1.initVerify(key.getPublic());
sig1.update(plainText);
try {
if (sig1.verify(signature)) {
System.out.println("Signature verified");
} else
System.out.println("Signature failed");
} catch (SignatureException e) {
System.out.println("Signature failed");
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -