-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathDigitalSignature.java
24 lines (21 loc) · 982 Bytes
/
DigitalSignature.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
import java.security.*;
public class DigitalSignatureDemo1 {
public static void main(String[] args) throws Exception {
String m = "hello world";
Signature signature = Signature.gertInstance("SHA256WithDSA");
SecureRandom secureRandom = new SecureRandom();
KeyPairGenerator keyPairGenerator = KeyPairGenerator.getInstance("DSA");
KeyPair keyPair = keyPairGenerator.generateKeyPair();
signature.initSign(keyPair.getPrivate(), secureRandom);
byte[] data = m.getBytes("UTF-8");
signature.update(data);
byte[] digitalSignature = signature.sign();
System.out.println("create digital signature: " + digitalSignature.toString());
Signature signature2 = Signature.getInstance("SHA256WithDSA");
signature2.initVerify(keyPair.getPublic());
byte[] data2 = m.getBytes("UTF-8");
signature2.update(data2);
boolean verified = signature2.verify(digitalSignature);
System.out.println("signature verfifies: " + verified);
}
}