需要的参数:
原文,签名值,证书BASE64Decoder字符串
public Boolean doVerify(String signInfo,String message) throws CertificateException, IOException, NoSuchAlgorithmException, SignatureException, InvalidKeyException{
CertificateFactory cf = CertificateFactory.getInstance("X.509");
BASE64Decoder decoder = new BASE64Decoder();
InputStream certis = new ByteArrayInputStream(decoder.decodeBuffer(base64Cert.trim()));
X509Certificate t = (X509Certificate)cf.generateCertificate(certis);
Signature sign = Signature.getInstance(t.getSigAlgName());
sign.initVerify(t.getPublicKey());
sign.update(message.getBytes());
if(sign.verify(decoder.decodeBuffer(signInfo))){
return true;
}else{
return false;
}
}
原文,签名值,证书BASE64Decoder字符串
public Boolean doVerify(String signInfo,String message) throws CertificateException, IOException, NoSuchAlgorithmException, SignatureException, InvalidKeyException{
CertificateFactory cf = CertificateFactory.getInstance("X.509");
BASE64Decoder decoder = new BASE64Decoder();
InputStream certis = new ByteArrayInputStream(decoder.decodeBuffer(base64Cert.trim()));
X509Certificate t = (X509Certificate)cf.generateCertificate(certis);
Signature sign = Signature.getInstance(t.getSigAlgName());
sign.initVerify(t.getPublicKey());
sign.update(message.getBytes());
if(sign.verify(decoder.decodeBuffer(signInfo))){
return true;
}else{
return false;
}
}
本文提供了一个使用Java进行公钥验证签名的具体实现方法。该方法通过传递签名值、消息和证书的BASE64编码字符串作为参数,利用X.509证书标准生成证书,并完成签名验证。
307

被折叠的 条评论
为什么被折叠?



