Note that there are some explanatory texts on larger screens.

plurals
  1. PO"Padding is invalid and cannot be removed" -Whats wrong with this code?
    text
    copied!<p>Every time I run this and encrypt, the output is variable, and when I attempt to decrypt I get "Padding is invalid and cannot be removed." Been fighting with this for a day or two now and I am at a loss.</p> <pre><code> private static string strIV = "abcdefghijklmnmo"; //The initialization vector. private static string strKey = "abcdefghijklmnmoabcdefghijklmnmo"; //The key used to encrypt the text. public static string Decrypt(string TextToDecrypt) { return Decryptor(TextToDecrypt); } private static string Encryptor(string TextToEncrypt) { //Turn the plaintext into a byte array. byte[] PlainTextBytes = System.Text.ASCIIEncoding.ASCII.GetBytes(TextToEncrypt); //Setup the AES providor for our purposes. AesCryptoServiceProvider aesProvider = new AesCryptoServiceProvider(); aesProvider.Key = System.Text.Encoding.ASCII.GetBytes(strKey); aesProvider.IV = System.Text.Encoding.ASCII.GetBytes(strIV); aesProvider.BlockSize = 128; aesProvider.KeySize = 256; aesProvider.Padding = PaddingMode.PKCS7; aesProvider.Mode = CipherMode.CBC; ICryptoTransform cryptoTransform = aesProvider.CreateEncryptor(aesProvider.Key, aesProvider.IV); byte[] EncryptedBytes = cryptoTransform.TransformFinalBlock(PlainTextBytes, 0, PlainTextBytes.Length); return Convert.ToBase64String(EncryptedBytes); } private static string Decryptor(string TextToDecrypt) { byte[] EncryptedBytes = Convert.FromBase64String(TextToDecrypt); //Setup the AES provider for decrypting. AesCryptoServiceProvider aesProvider = new AesCryptoServiceProvider(); aesProvider.Key = System.Text.Encoding.ASCII.GetBytes(strKey); aesProvider.IV = System.Text.Encoding.ASCII.GetBytes(strIV); aesProvider.BlockSize = 128; aesProvider.KeySize = 256; aesProvider.Padding = PaddingMode.PKCS7; aesProvider.Mode = CipherMode.CBC; ICryptoTransform cryptoTransform = aesProvider.CreateDecryptor(aesProvider.Key, aesProvider.IV); byte[] DecryptedBytes = cryptoTransform.TransformFinalBlock(EncryptedBytes, 0, EncryptedBytes.Length); return System.Text.Encoding.ASCII.GetString(DecryptedBytes); } } </code></pre>
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload