java – 数字签名:用于验证和提取认证信息的示例代码

我使用第三方工具来验证签名并从签名中获取证书详细信息(如序列号,CA等).此实用程序的问题是它已获得许可,仅适用于某些计算机.

我可以使用简单的java或.net代码验证数据签名吗?(而不是使用付费应用程序).我没有私钥从签名数据中提取证书信息.

或者,如果我有pfx文件,有人可以在java或.net中建议示例代码以提取证书详细信息.来自签名数据.

数据使用非对称加密进行签名.

最佳答案
从证书中提取详细信息:

>创建一个保存证书数据的字符串.只需确保它在—–开始证书—–开始和—–结束证书—–最后.
>现在使用Java中的以下代码来提取证书详细信息.

InputStream inStream = new ByteArrayInputStream(certString.toString().getBytes("UTF-8"));
BufferedInputStream bis = new BufferedInputStream(inStream);
CertificateFactory cf = CertificateFactory.getInstance("X.509");
Certificate cert = cf.generateCertificate(bis);
X509Certificate xCert = (X509Certificate)cert;

System.out.println("Certificate Type: "+cert.getType());
System.out.println("Public Key: \n"+cert.getPublicKey());
try{
      System.out.println("Signature Algorithm"+xCert.getSigAlgName());
      System.out.println("IssuerDN : "+xCert.getIssuerDN());
      System.out.println("Serial Number : "+xCert.getSerialNumber());
      System.out.println("SubjectDN : "+xCert.getSubjectDN());
}catch(Exception exp){
      :
}

转载注明原文:java – 数字签名:用于验证和提取认证信息的示例代码 - 代码日志