700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > java 公钥 验证_Java代码签名验证公钥私钥

java 公钥 验证_Java代码签名验证公钥私钥

时间:2022-12-12 05:50:38

相关推荐

java 公钥 验证_Java代码签名验证公钥私钥

Java验证公钥私钥签名认证示例如下

importsecurity.KeyPair;

importsecurity.KeyPairGenerator;

importsecurity.NoSuchAlgorithmException;

importsecurity.Signature;

/**

*

*@since8月20日下午2:22:08

*@authorhym

*/

publicclassSignDemo{

/**得到产生的私钥/公钥对

*@return

*@authorhym

*/

publicstaticKeyPairgetKeypair(){

//产生RSA密钥对(myKeyPair)

KeyPairGeneratormyKeyGen=null;

try{

myKeyGen=KeyPairGenerator.getInstance(“RSA”);

initialize(1024);

}catch(NoSuchAlgorithmExceptione){

printStackTrace();

}

KeyPairmyKeyPair=myKeyGen.generateKeyPair();

returnmyKeyPair;

}

/**根据密钥对对信息进行加密,返回公钥值

*@parammySig

*@parammyKeyPair

*@paraminfomation

*@return

*@authorhym

*/

publicstaticbyte[]getpublicByKeypair(SignaturemySig,KeyPairmyKeyPair,byte[]infomation){

byte[]publicInfo=null;

try{

initSign(myKeyPair.getPrivate());//用私钥初始化签名对象

update(infomation);//将待签名的数据传送给签名对象

publicInfo=mySig.sign();//返回签名结果字节数组

}catch(Exceptione){

printStackTrace();

}

returnpublicInfo;

}

/**公钥验证签名

*@parammySig

*@parammyKeyPair

*@paraminfomation

*@parampublicInfo

*@return

*@authorhym

*/

publicstaticbooleandecryptBypublic(SignaturemySig,KeyPairmyKeyPair,Stringinfomation,byte[]publicInfo){

booleanverify=false;

try{

initVerify(myKeyPair.getPublic());//使用公钥初始化签名对象,用于验证签名

update(infomation.getBytes());//更新签名内容

verify=mySig.verify(publicInfo);//得到验证结果

}catch(Exceptione){

printStackTrace();

}

returnverify;

}

publicstaticvoidmain(String[]args){

try{

KeyPairkeyPair=getKeypair();

SignaturemySig=Signature.getInstance(“MD5WithRSA”);//用指定算法产生签名对象

byte[]publicinfo=getpublicByKeypair(mySig,keyPair,”验证我”.getBytes());

booleanverify=decryptBypublic(mySig,keyPair,“验证我”,publicinfo);

out.println(“验证签名的结果是:”+verify);

}catch(NoSuchAlgorithmExceptione){

printStackTrace();

}

}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。