我使用第三方工具來驗證簽名並從簽名中獲取證書詳細信息(如序列號,CA等..)。這個實用程序的問題是它是許可的,只能在某些機器上運行。數字簽名:用於驗證和提取認證信息的示例代碼
我可以使用簡單的java或.net代碼驗證數據簽名嗎?(而不是使用付費應用程序)。我沒有私鑰從簽名數據中提取證書信息。
或者如果有人可以在java或.net中提示示例代碼來提取證書詳細信息,如果我有pfx文件。從簽署的數據。
數據使用非對稱加密進行簽名。
我使用第三方工具來驗證簽名並從簽名中獲取證書詳細信息(如序列號,CA等..)。這個實用程序的問題是它是許可的,只能在某些機器上運行。數字簽名:用於驗證和提取認證信息的示例代碼
我可以使用簡單的java或.net代碼驗證數據簽名嗎?(而不是使用付費應用程序)。我沒有私鑰從簽名數據中提取證書信息。
或者如果有人可以在java或.net中提示示例代碼來提取證書詳細信息,如果我有pfx文件。從簽署的數據。
數據使用非對稱加密進行簽名。
從證書提取細節:
-----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){
:
}
你的代碼似乎真的很有幫助,但我只有簽名和數據,我沒有證書,證書是否與簽名一起出現?如果是,你能告訴我如何我可以從簽名中提取證書嗎? – 2011-06-10 03:58:07
如果您在PFX文件,那麼這可能包含將被要求驗證簽名的公鑰證書。或者,如果您的簽名是PKCS#7簽名,那麼簽名本身將保存數據,簽名和證書。假定PKCS#7未被分離。
您需要詢問您的簽名者,他如何將他的證書轉移到驗證中。
2個投票,但只有1個有用但不完整的答案:( – 2011-06-16 04:29:17