· 7 years ago · Mar 12, 2018, 09:20 AM
1import java.security.KeyFactory;
2import java.security.KeyPair;
3import java.security.KeyPairGenerator;
4import java.security.NoSuchAlgorithmException;
5import java.security.spec.DSAPrivateKeySpec;
6import java.security.spec.InvalidKeySpecException;
7
8import javax.crypto.KeyGenerator;
9import javax.crypto.SecretKey;
10import javax.crypto.SecretKeyFactory;
11import javax.crypto.spec.DESKeySpec;
12
13public class KeyTest {
14
15 public static void main(String[] args) {
16 try {
17 generateKeyPair();
18 generateKey();
19 } catch (InvalidKeySpecException e) {
20 e.printStackTrace();
21 } catch (NoSuchAlgorithmException e) {
22 e.printStackTrace();
23 }
24 }
25
26 public static void generateKeyPair() throws NoSuchAlgorithmException, InvalidKeySpecException {
27 KeyPairGenerator kpg = KeyPairGenerator.getInstance("DSA");
28 kpg.initialize(512);
29 KeyPair kp = kpg.generateKeyPair();
30 System.out.println(kpg.getProvider());
31 System.out.println(kpg.getAlgorithm());
32 KeyFactory kf = KeyFactory.getInstance("DSA");
33 DSAPrivateKeySpec dsaPKS = kf.getKeySpec(kp.getPrivate(), DSAPrivateKeySpec.class);
34 System.out.println("\tDSA param G:" + dsaPKS.getG());
35 System.out.println("\tDSA param P:" + dsaPKS.getP());
36 System.out.println("\tDSA param Q:" + dsaPKS.getQ());
37 System.out.println("\tDSA param X:" + dsaPKS.getX());
38 }
39
40 public static void generateKey() throws NoSuchAlgorithmException, InvalidKeySpecException {
41 KeyGenerator kg = KeyGenerator.getInstance("DES");
42 SecretKey key = kg.generateKey();
43 System.out.println(kg.getProvider());
44 System.out.println(kg.getAlgorithm());
45 SecretKeyFactory skf = SecretKeyFactory.getInstance("DES");
46 DESKeySpec desKS = (DESKeySpec) skf.getKeySpec(key, DESKeySpec.class);
47 System.out.println("\tDES key bytes size:" + desKS.getKey().length);
48 }
49
50}