Mega Code Archive

 
Categories / Java Tutorial / Security
 

Use DSA to Sign

import java.security.KeyPair; import java.security.KeyPairGenerator; import java.security.PrivateKey; import java.security.PublicKey; import java.security.Signature; public class MainClass {   public static void main(String[] args) throws Exception {     String alg = "DSA";     KeyPairGenerator kg = KeyPairGenerator.getInstance(alg);     KeyPair keyPair = kg.genKeyPair();     byte[] signature = performSigning("test", alg, keyPair);     performVerification(args[0], alg, signature, keyPair.getPublic());   }   static byte[] performSigning(String s, String alg, KeyPair keyPair) throws Exception {     Signature sign = Signature.getInstance(alg);     PrivateKey privateKey = keyPair.getPrivate();     PublicKey publicKey = keyPair.getPublic();     sign.initSign(privateKey);     sign.update(s.getBytes());     return sign.sign();   }   static void performVerification(String s, String alg, byte[] signature, PublicKey publicKey)       throws Exception {     Signature sign = Signature.getInstance(alg);     sign.initVerify(publicKey);     sign.update(s.getBytes());     System.out.println(sign.verify(signature));   } }