我試圖驗證XML簽名。XML數字簽名驗證
根據此tutorial驗證工作正常。
但我也試過第二種方法。與Signature類 的verify method驗證我的手寫簽名,並從XML文件中的證書,我做了以下內容:
public static boolean checkSignedFile(byte[] data, byte[] sigToVerify,
byte[] cert, String algorithm) throws CertificateException,
NoSuchAlgorithmException, InvalidKeyException, SignatureException {
CertificateFactory cf = CertificateFactory.getInstance("X.509");
Certificate c = (Certificate) cf
.generateCertificate(new ByteArrayInputStream(cert));
PublicKey pk = c.getPublicKey();
Signature sig;
boolean verifies = false;
sig = Signature.getInstance(algorithm);
sig.initVerify(pk);
sig.update(data);
verifies = sig.verify(sigToVerify);
return verifies;
}
結果爲假。簽名沒有驗證。這可能是什麼原因?
教程鏈接似乎不再適用。 – Yster 2015-04-29 09:52:33
這可能是新的:http://www.oracle.com/technetwork/articles/javase/dig-signature-api-140772.html – Yster 2015-04-29 10:37:44