java - 数字签名 : sample code for verification and for extracting certification information

标签 java .net digital-signature digital-certificate

我使用第三方工具来验证签名并从签名中获取证书详细信息(如序列号、CA 等)。此实用程序的问题在于它已获得许可并且只能在某些机器上运行。

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

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

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

最佳答案

从证书中提取详细信息:

  1. 制作一个保存证书数据的字符串。只需确保它有 -----BEGIN CERTIFICATE----- 开始和 -----END CERTIFICATE----- 结束。
  2. 现在在 Java 中使用以下代码提取证书详细信息。

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

System.out.println("证书类型:"+cert.getType());
System.out.println("公钥:\n"+cert.getPublicKey());
尝试{
      System.out.println("签名算法"+xCert.getSigAlgName());
      System.out.println("IssuerDN : "+xCert.getIssuerDN());
      System.out.println("序列号:"+xCert.getSerialNumber());
      System.out.println("SubjectDN : "+xCert.getSubjectDN());
}catch(异常表达式){
      :
}

关于java - 数字签名 : sample code for verification and for extracting certification information,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6148746/

相关文章:

java - 在 webservice 中运行一个线程

c# - MVC DAL 和 BLL 概念

c# - 如何以这种方式调整 WPF 网格面板的大小?

c# - 使用 Web 服务时出现 SocketException

java - PKCS#11 实例化问题

java - DocuSign 启用打印和登录 其他操作

java - JDK 日志 API

java - 错误 MVC org.springframework.validation.BeanPropertyBindingResult : 1 errors with array

java - 如何按点获取 map 中的值?

c++ - 打印数字签名信息