· 7 years ago · Mar 22, 2018, 04:46 AM
1import javax.crypto.BadPaddingException;
2import javax.crypto.Cipher;
3import javax.crypto.IllegalBlockSizeException;
4import javax.crypto.NoSuchPaddingException;
5import javax.crypto.spec.SecretKeySpec;
6import java.security.InvalidKeyException;
7import java.security.NoSuchAlgorithmException;
8
9
10/**
11 * Symmetric encrypt & decrypt with AES algorithm
12 */
13public class TryCipher {
14
15 private static SecretKeySpec secretKey;
16 private static Cipher cipher;
17
18 public static void main(String[] args) {
19
20 String key = "ABCDEFGHABCDEFGH";
21 String input = "This is an input String";
22 byte[] output;
23 byte[] output2;
24
25 try {
26 secretKey = new SecretKeySpec(key.getBytes(), "AES");
27 cipher = Cipher.getInstance("AES");
28
29 //encrypt
30 cipher.init(Cipher.ENCRYPT_MODE, secretKey);
31 output = cipher.doFinal(input.getBytes());
32 System.out.println("Encrypted string:");
33 System.out.println(new String(output));
34
35 //decrypt
36 cipher.init(Cipher.DECRYPT_MODE, secretKey);
37 output2 = cipher.doFinal(output);
38 System.out.println("Decrypted string:");
39 System.out.println(new String(output2));
40
41 } catch (InvalidKeyException | BadPaddingException | IllegalBlockSizeException | NoSuchAlgorithmException |
42 NoSuchPaddingException e) {
43 e.printStackTrace();
44 }
45 }
46}