title: Length of the data to decrypt is invalid when using AES encryption in ASP.NET C#
body: <p>Hi guys please help me out with this, I keep getting this error:</p>
  
  <blockquote>
    <p>Length of the data to decrypt is invalid.</p>
  </blockquote>
  
  <p>What am I doing wrong?</p>
  
  <pre><code>using System;
  using System.Collections.Generic;
  using System.Linq;
  using System.Web;
  using System.Security.Cryptography;
  using System.IO;
  
  namespace inChargeAES
  {
      public class inChargeCrypto : IinChargeAES
      {
          public inChargeCrypto() {}
  
          public String inChargeEncrypt(String plaintext, byte[] encryptionKey, byte[] initializationVector)
          {
              if (plaintext == null || plaintext.Length &lt;= 0)
              {
                  throw new ArgumentNullException("plaintext");
              }
              if(encryptionKey == null || encryptionKey.Length &lt;= 0){
                  throw new ArgumentNullException("encryptionKey");
              }
              if(initializationVector == null || initializationVector.Length &lt;= 0){
                  throw new ArgumentNullException("initializationVector");
              }
              byte[] encryptedText;
              using(RijndaelManaged rjManage = new RijndaelManaged())
              {
                  rjManage.Key = encryptionKey;
                  rjManage.IV = initializationVector;
                  rjManage.Mode = CipherMode.CBC;
                  //rjManage.Padding = PaddingMode.None;
  
                  ICryptoTransform iTransformer = rjManage.CreateEncryptor(rjManage.Key, rjManage.IV);
                  using(MemoryStream memStream = new MemoryStream())
                  {
                      using(CryptoStream cEncryptStream = new CryptoStream(memStream, iTransformer, CryptoStreamMode.Write))
                      {
                          using(StreamWriter encryptStreamWriter = new StreamWriter(cEncryptStream))
                          {
                              encryptStreamWriter.Write(plaintext);
                          }
                          encryptedText = memStream.ToArray();
                      }
                  }
              }
              return Convert.ToBase64String(encryptedText);
          }
  
          public String inChargeDecrypt(byte[] cipher, byte[] encryptionKey, byte[] initializationVector)
          {
              if (cipher == null || cipher.Length &lt;= 0){
                  throw new ArgumentNullException("cipher");
              }
              if (encryptionKey == null || encryptionKey.Length &lt;= 0){
                  throw new ArgumentNullException("encryptionKey");
              }
              if (initializationVector == null || initializationVector.Length &lt;= 0){
                  throw new ArgumentNullException("initializationVector");
              }
  
              String decryptedText = null;
              using (RijndaelManaged rijManage = new RijndaelManaged())
              {
                  rijManage.Key = encryptionKey;
                  rijManage.IV = initializationVector;
                  rijManage.Mode = CipherMode.CBC;
                  rijManage.Padding = PaddingMode.None;
  
                  ICryptoTransform iTranformation = rijManage.CreateDecryptor(rijManage.Key, rijManage.IV);
                  using(MemoryStream memStream = new MemoryStream(cipher))
                  {
                      using(CryptoStream cDecryptorStream = new CryptoStream(memStream, iTranformation, CryptoStreamMode.Read))
                      {
                          using (StreamReader decryptReader = new StreamReader(cDecryptorStream))
                          {
                              decryptedText = decryptReader.ReadToEnd(); //Exception Is Thrown
                          }
                          //memStream.Read(cipher, 0, cipher.Length);
                      }
                  }
              }
              return decryptedText;
          }
      }
  }
  </code></pre>