· 5 years ago · Feb 04, 2020, 04:46 AM
1import javax.crypto.Cipher;
2import javax.crypto.KeyGenerator;
3import javax.crypto.SecretKey;
4import javax.xml.bind.DatatypeConverter;
5public class AESEncryption {
6
7 public static void main(String[] args) throws Exception {
8 String plainText = "Hello World";
9 SecretKey secKey = getSecretEncryptionKey();
10 byte[] cipherText = encryptText(plainText, secKey);
11 String decryptedText = decryptText(cipherText, secKey);
12
13 System.out.println("Original Text:" + plainText);
14 System.out.println("AES Key (Hex Form):"+bytesToHex(secKey.getEncoded()));
15 System.out.println("Encrypted Text (Hex Form):"+bytesToHex(cipherText));
16 System.out.println("Descrypted Text:"+decryptedText);
17
18 }
19
20 public static SecretKey getSecretEncryptionKey() throws Exception{
21 KeyGenerator generator = KeyGenerator.getInstance("AES");
22 generator.init(128); // The AES key size in number of bits
23 SecretKey secKey = generator.generateKey();
24 return secKey;
25 }
26
27
28 public static byte[] encryptText(String plainText,SecretKey secKey) throws
29
30 Cipher aesCipher = Cipher.getInstance("AES");
31 aesCipher.init(Cipher.ENCRYPT_MODE, secKey);
32 byte[] byteCipherText = aesCipher.doFinal(plainText.getBytes());
33 return byteCipherText;
34 }
35
36
37 public static String decryptText(byte[] byteCipherText, SecretKey secKey)
38
39 Cipher aesCipher = Cipher.getInstance("AES");
40 aesCipher.init(Cipher.DECRYPT_MODE, secKey);
41 byte[] bytePlainText = aesCipher.doFinal(byteCipherText);
42 return new String(bytePlainText);
43 }
44
45
46 private static String bytesToHex(byte[] hash) {
47 return DatatypeConverter.printHexBinary(hash);
48 }
49}
5004-02-2020 09:38
51Page 1