Java如何验证签名数据的数字签名?
在此示例中,我们将学习如何验证先前签名数据的数字签名。要对数据签名,您可以在这篇文章中看到前面的示例。如何创建数字签名和数据签名?
这里的代码片段:
package org.nhooo.example.security;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.security.KeyFactory;
import java.security.PublicKey;
import java.security.Signature;
import java.security.spec.X509EncodedKeySpec;
public class VerifyDigitalSignature {
public static void main(String[] args) {
try {
byte[] publicKeyEncoded = Files.readAllBytes(Paths.get("publickey"));
byte[] digitalSignature = Files.readAllBytes(Paths.get("signature"));
X509EncodedKeySpec publicKeySpec = new X509EncodedKeySpec(publicKeyEncoded);
KeyFactory keyFactory = KeyFactory.getInstance("DSA", "SUN");
PublicKey publicKey = keyFactory.generatePublic(publicKeySpec);
Signature signature = Signature.getInstance("SHA1withDSA", "SUN");
signature.initVerify(publicKey);
byte[] bytes = Files.readAllBytes(Paths.get("README"));
signature.update(bytes);
boolean verified = signature.verify(digitalSignature);
if (verified) {
System.out.println("Data verified.");
} else {
System.out.println("Cannot verify data.");
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
热门推荐
8 贫困户祝福语简短
10 发廊元旦祝福语大全简短
11 宝子生日祝福语简短
12 新娘上头祝福语大全简短
13 简短霸气的考试祝福语
14 好朋友夫妻祝福语简短
15 新年祝福语短句简短搞笑
16 八十大寿简短祝福语
17 恭喜朋友买车祝福语简短
18 医生节蛋糕祝福语简短