md5_dsa.java
46 linesjava
DOWNLOAD
1// Aim: Program to perform MD5 hash with DSA (MD5 Hash with DSA).
2
3
4import java.util.*;
5import java.security.*;
6
7public class md5_dsa {
8    public static void main(String[] args) throws Exception {
9        Scanner sc = new Scanner(System.in);
10        System.out.print("enter the message :");
11        String text = sc.nextLine();
12        MessageDigest m = MessageDigest.getInstance("MD5");
13        byte[] digest = m.digest(text.getBytes());
14        System.out.println("MD5 :"+Base64.getEncoder().encodeToString(digest));
15        StringBuilder hex = new StringBuilder();
16        for(byte b : digest){
17            String h =String.format("%2x",b);
18            hex.append(h);
19        }
20        System.out.println("hex :"+hex);
21
22        KeyPairGenerator keypgen = KeyPairGenerator.getInstance("DSA");
23        keypgen.initialize(2048);
24        KeyPair keys = keypgen.generateKeyPair();
25        PrivateKey pri = keys.getPrivate();
26        PublicKey pub = keys.getPublic();
27
28        System.out.println("DSA Private key :"+ Base64.getEncoder().encodeToString(pri.getEncoded()));
29        System.out.println("DSA Public key :"+ Base64.getEncoder().encodeToString(pub.getEncoded()));
30
31        Signature sig = Signature.getInstance("SHA256withDSA");
32        sig.initSign(pri);
33        sig.update(digest);
34        byte[] digital = sig.sign();
35        System.out.println("Digital Signature : "+Base64.getEncoder().encodeToString(digital));
36
37        sig.initVerify(pub);
38        sig.update(digest);
39        boolean isverified = sig.verify(digital);
40        System.out.println("Signature verified :"+isverified);
41
42        sc.close();
43
44    }    
45}
46