我使用第三方工具来验证签名并从签名中获取证书详细信息(如序列号、CA 等)。此实用程序的问题是它已获得许可并且只能在某些机器上运行。
我可以使用简单的 java 或 .net 代码针对数据验证签名吗?(而不是使用付费应用程序)。我没有从签名数据中提取证书信息的私钥。
或者,如果我有 pfx 文件,如果有人可以建议 java 或 .net 中的示例代码来提取证书详细信息。来自签名数据。
数据使用非对称加密进行签名。
我使用第三方工具来验证签名并从签名中获取证书详细信息(如序列号、CA 等)。此实用程序的问题是它已获得许可并且只能在某些机器上运行。
我可以使用简单的 java 或 .net 代码针对数据验证签名吗?(而不是使用付费应用程序)。我没有从签名数据中提取证书信息的私钥。
或者,如果我有 pfx 文件,如果有人可以建议 java 或 .net 中的示例代码来提取证书详细信息。来自签名数据。
数据使用非对称加密进行签名。
要从证书中提取详细信息:
-----BEGIN CERTIFICATE-----
在开始和-----END CERTIFICATE-----
结束时都有。
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){
:
}
如果您拥有 PFX 文件,则该文件可能包含验证签名所需的公钥证书。
或者,如果您的签名是 PKCS#7 签名,则签名本身将包含数据、签名和证书。假设 PKCS#7 未分离。
您需要询问您的签名者,他如何转移他的证书以进行验证。