input: Write a function to implement an AES encryption and decryption application in Python. The function should take a plaintext string as input, encrypt it using AES encryption, and return the ciphertext. Additionally, it should provide a function to decrypt the ciphertext back to the original plaintext. If the input string is empty, the function should return an empty string for both encryption and decryption.
  assert encrypt("Hello, World!")==b'\xd6\xe8\x0c\xa4\x03\x90\x93\x84\xcf\x8d\xf7\xa6\x7c\xb8\x17\xa9'
  assert decrypt(b'\xd6\xe8\x0c\xa4\x03\x90\x93\x84\xcf\x8d\xf7\xa6\x7c\xb8\x17\xa9')=="Hello, World!"
  assert encrypt("")==""
  assert decrypt("")==""
output: from Crypto.Cipher import AES
  from Crypto.Util.Padding import pad, unpad
  import os
  
  def encrypt(plaintext):
      if not plaintext:
          return ""
      key = os.urandom(16)
      cipher = AES.new(key, AES.MODE_CBC)
      ciphertext = cipher.encrypt(pad(plaintext.encode(), AES.block_size))
      return ciphertext
  
  def decrypt(ciphertext):
      if not ciphertext:
          return ""
      key = os.urandom(16)
      cipher = AES.new(key, AES.MODE_CBC, iv=cipher.iv)
      plaintext = unpad(cipher.decrypt(ciphertext), AES.block_size)
      return plaintext.decode()