使用JAVA数字证书做数字签名认证

来源:计算机等级考试    发布时间:2012-08-29    计算机等级考试视频    评论

  1.

  keytool -genkey -keystore chinajavaworld.keystore -alias chinajavaworld

  这个命令用来产生一个密匙库,执行完毕后会在当前操作目录中产生一个chinajavaworld.keystore的文件,在执行命令的时候还有提示你输入密匙库的密码,要记住,后面还要用到。

  2.

  keytool -export -keystore chinajavaworld.keystore

  -alias chinajavaworld -file chinajavaworld.cer

  这个命令用来产生签名时所要用的证书。

  3.在JAVA里操作,将Cer内容改为BASE64编码

  //从密钥库中读取CA证书

  String storepass = "123456";

  //前面设置的密码

  FileInputStream in = new FileInputStream("e://license//a//chinajavaworld.keystore"); KeyStore ks = KeyStore.getInstance("JKS"); ks.load(in, storepass.toCharArray());

  //获取证书 java.security.cert.Certificate c1 = ks.getCertificate("chinajavaworld");

  //BASE64编码 System.out.println(StringUtils.encodeBase64(c1.getEncoded()));

  //将chinajavaworld.cer内容改为这里输出的内容

  4.开始产生(测试)签名

  Signature signature;

  try {

  InputStream streamCert = new java.io.FileInputStream( "e://license//a//test.cer");

  CertificateFactory factory = CertificateFactory.getInstance("X.509");

  Certificate cert = factory.generateCertificate(streamCert);

  System.out.println(StringUtils.encodeBase64(cert.getEncoded()));

  signature = Signature.getInstance("SHA1withDSA");

  signature.initVerify(cert.getPublicKey());

  //要签名的指纹内容

  String sss = "Welcome to www.chinajavaworld.com,The java world for you forever.";

  //获取CA证书私钥

  PrivateKey priKey=(PrivateKey)ks.getKey("test",storepass.toCharArray());

  System.out.println("priKey:"+StringUtils.encodeHex(priKey.getEncoded()));

  //用私钥签名

  sig = Signature.getInstance("SHA1withDSA");

  sig.initSign(priKey);

  ByteArrayOutputStream streamRaw0 = new ByteArrayOutputStream();

  DataOutputStream streamSig0 = new DataOutputStream(streamRaw0);

  streamSig0.writeUTF(sss); sig.update(streamRaw0.toByteArray());

  String signatureS = StringUtils.encodeHex(sig.sign());

  System.out.println("signature: "+signatureS);

上一页123下一页

视频学习

我考网版权与免责声明

① 凡本网注明稿件来源为"原创"的所有文字、图片和音视频稿件,版权均属本网所有。任何媒体、网站或个人转载、链接转贴或以其他方式复制发表时必须注明"稿件来源:我考网",违者本网将依法追究责任;

② 本网部分稿件来源于网络,任何单位或个人认为我考网发布的内容可能涉嫌侵犯其合法权益,应该及时向我考网书面反馈,并提供身份证明、权属证明及详细侵权情况证明,我考网在收到上述法律文件后,将会尽快移除被控侵权内容。

最近更新

社区交流

考试问答