//AES Encryption and Decryption (Java)
import javax.crypto.*;
import java.util.Base64;
import java.util.Scanner;

public class Main {
    public static void main(String[] args) throws Exception {
        KeyGenerator kg = KeyGenerator.getInstance("AES");
        kg.init(128);
        SecretKey key = kg.generateKey();

        Scanner sc = new Scanner(System.in);
        System.out.print("Enter Message: ");
        String msg = sc.nextLine();

        Cipher cipher = Cipher.getInstance("AES");
        cipher.init(Cipher.ENCRYPT_MODE, key);
        String enc = Base64.getEncoder().encodeToString(cipher.doFinal(msg.getBytes()));
        System.out.println("Encrypted: " + enc);

        cipher.init(Cipher.DECRYPT_MODE, key);
        System.out.println("Decrypted: " +
            new String(cipher.doFinal(Base64.getDecoder().decode(enc))));
    }
}
