?? signatureexample.java
字號:
import java.security.*;
public class SignatureExample {
public static void main(String[] args){
try{
byte[] info ="待簽名信息".getBytes();
//產生RSA密鑰對(myKeyPair)
KeyPairGenerator myKeyGen= KeyPairGenerator.getInstance("RSA");
myKeyGen.initialize(1024);
KeyPair myKeyPair = myKeyGen.generateKeyPair();
System.out.println( "得到RSA密鑰對" );
//產生Signature對象,對用私鑰對信息(info)簽名.
Signature mySig = Signature.getInstance("SHA1WithRSA"); //用指定算法產生簽名對象
mySig.initSign(myKeyPair.getPrivate()); //用私鑰初始化簽名對象
mySig.update(info); //將待簽名的數據傳送給簽名對象(須在初始化之后)
byte[] sigResult = mySig.sign(); //返回簽名結果字節數組
System.out.println("簽名后信息: "+ new String(sigResult) );
//用公鑰驗證簽名結果
mySig.initVerify(myKeyPair.getPublic()); //使用公鑰初始化簽名對象,用于驗證簽名
mySig.update(info); //更新簽名內容
boolean verify= mySig.verify(sigResult); //得到驗證結果
System.out.println( "簽名驗證結果: " +verify);
}catch (Exception ex){ex.printStackTrace();}
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -