title: Specified initialization vector (IV) does not match the block size for this algorithm
body: <p>I am working on a base encryption method. I am using RijndaelManaged. I got this code from somewhere a long time ago, but can't remember where.</p>
  
  <p>I had my code working before, but something changed and I cannot quite figure it out.</p>
  
  <p>When I run my code, I get the following error;</p>
  
  <blockquote>
    <p>Specified initialization vector (IV)
    does not match the block size for this
    algorithm.</p>
  </blockquote>
  
  <p>Here is my code:</p>
  
  <pre><code>string textToEncrypt = "TEST STRING";
  
  int keySize = 256;
  string hashAlgorithm = "SHA1";
  string passPhrase = "AH!PSB0%FGHR$";
  string saltValue = "LRT%YUR#VBNL@1";
  string initVector = "HR$2pIjHR$2pIj";
  
  byte[] initVectorBytes = Encoding.ASCII.GetBytes(initVector);
  byte[] saltValueBytes = Encoding.ASCII.GetBytes(saltValue);
  
  byte[] plainTextBytes = Encoding.UTF8.GetBytes(textToEncrypt);
  
  var password = new PasswordDeriveBytes(passPhrase, saltValueBytes, hashAlgorithm, 2);
  
  byte[] keyBytes = password.GetBytes(keySize / 8);
  
  RijndaelManaged symmetricKey = new RijndaelManaged();
  
  symmetricKey.Mode = CipherMode.CBC;
  
  ICryptoTransform encryptor = symmetricKey.CreateEncryptor(keyBytes,initVectorBytes);
  
  MemoryStream memoryStream = new MemoryStream();
  
  var cryptoStream = new CryptoStream(memoryStream,encryptor,CryptoStreamMode.Write);
  cryptoStream.Write(plainTextBytes, 0, plainTextBytes.Length);
  
  cryptoStream.FlushFinalBlock();
  
  byte[] cipherTextBytes = memoryStream.ToArray();
  
  memoryStream.Close();
  cryptoStream.Close();
  
  string cipherText = Convert.ToBase64String(cipherTextBytes);
  </code></pre>
  
  <p>Any help will be appreciated.</p>