|
|
|
联系客服020-83701501

Java代码签名验证公钥私钥

联系在线客服,可以获得免费在线咨询服务。 QQ咨询 我要预约
Java代码签名验证公钥私钥

Java生成密钥,保存密钥的实例源码,通过本源码可以了解到Java如何产生单钥加密的密钥(myKey),产生双钥的密钥对(keyPair),如何保存公钥的字节数组,保存私钥到文件privateKey.dat,

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

importsecurity.KeyPair;

importsecurity.KeyPairGenerator;

importsecurity.NoSuchAlgorithmException;

importsecurity.Signature;

/**

*

* @since?2015年8月20日?下午2:22:08

*?@author?hym

*/

publicclass?SignDemo?{

 

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

*?@return

*?@author?hym

*/

public?static?KeyPair?getKeypair(){

//产生RSA密钥对(myKeyPair)

KeyPairGenerator?myKeyGen?=?null;

try?{

myKeyGen?=?KeyPairGenerator.getInstance(“RSA”);

initialize(1024);

}?catch?(NoSuchAlgorithmException?e)?{

printStackTrace();

}

KeyPair?myKeyPair?=?myKeyGen.generateKeyPair();

return?myKeyPair;

}

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

*?@param?mySig

*?@param?myKeyPair

*?@param?infomation

*?@return

*?@author?hym

*/

public?static?byte[]?getpublicByKeypair(Signature?mySig,KeyPair?myKeyPair,byte[]?infomation){

byte[]?publicInfo=null;

try?{

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

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

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

}?catch?(Exception?e)?{

printStackTrace();

}

return?publicInfo;

}

 

/**公钥验证签名

*?@param?mySig

*?@param?myKeyPair

*?@param?infomation

*?@param?publicInfo

*?@return

*?@author?hym

*/

public?static?boolean?decryptBypublic(Signature?mySig,??KeyPair?myKeyPair,String?infomation,byte[]?publicInfo){

boolean?verify=false;

try?{

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

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

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

}?catch?(Exception?e)?{

printStackTrace();

}

return?verify;

}

 

public?static?void?main(String[]?args)?{

try?{

KeyPair?keyPair=getKeypair();

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

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

boolean?verify=decryptBypublic(mySig,?keyPair,?“验证我”,?publicinfo);

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

}?catch?(NoSuchAlgorithmException?e)?{

printStackTrace();

}

}


代码签名证书是保护开发者的劳动成果,给自己开发的软件签名的证书,保证代码在签名之后不被恶意篡改。用户可通过对代码的数字签名来标识软件来源,辨别软件开发者的真实身份。GDCA的代码签名证书支持多种代码签名,并已通过WEBTRUST国际认证,是全球认证的代码签名证书。

数安新闻+更多

证书相关+更多