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

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

  //用公钥做验证测试

  System.out.println("pubKey:"+StringUtils.encodeHex(cert.getPublicKey().getEncoded()));

  ByteArrayOutputStream streamRaw = new ByteArrayOutputStream();

  DataOutputStream streamSig = new DataOutputStream(streamRaw);

  streamSig.writeUTF(sss); signature.update(streamRaw.toByteArray());

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

  } catch(Exception e)

  {

  System.out.println(e);

  }

  接下来,你就可以把chinajavaworld.cer和签名放在你的产品目录里了。认证的时候读取cer证书中的公钥,对签名内容进行认证就可以了。

  附

  public static String encodeBase64(byte data[]) {

  boolean lineSep = false;

  int sLen = data == null ? 0 : data.length;

  (sLen == 0) return new String("");

  int eLen = (sLen / 3) * 3;

  int cCnt = (sLen - 1) / 3 + 1 << 2;

  int dLen = cCnt + (lineSep ? (cCnt - 1) / 76 << 1 : 0);

  char dArr[] = new char[dLen];

  int s = 0;

  int d = 0;

  int cc = 0;

  do {

  if(s >= eLen)

  break;

  int i = (data[s++] & 0xff) << 16 | (data[s++] & 0xff) << 8 | data[s++] & 0xff;

  dArr[d++] = CA[i >>> 18 & 0x3f];

  dArr[d++] = CA[i >>> 12 & 0x3f];

  dArr[d++] = CA[i >>> 6 & 0x3f];

  dArr[d++] = CA[i & 0x3f];

视频学习

我考网版权与免责声明

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

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

最近更新

社区交流

考试问答