I am getting an error related to my encryption class. The error is "Padding is invalid and cannot be removed". See the code below
using System;
using System.Collections.Generic
;
using System.Text;
using System.Security.Cryptograp
hy;
using System.IO;
using Moxie.Logging;
using Moxie.Cryptography;
namespace UPS.Security.Cryptography
{
public class UPSCryptographyProvider
{
private const string CRYPTKEY = "RZFKGEHN$GCNV@LXJLKMEKDYY
URTKJLE";
private const string CRYPTIV = "IL#MCFACBX&YKPWGPWPGJNUPL
?ZJHBXM";
public RijndaelManaged _Rijndael = new RijndaelManaged();
public UPSCryptographyProvider()
{
// cryptSetting
_Rijndael.Mode = CipherMode.CBC;
_Rijndael.Padding = PaddingMode.ISO10126;
_Rijndael.BlockSize = 256;
_Rijndael.KeySize = 256;
//_Rijndael.Clear();
}
/// <summary>
/// Encrypts a string
/// </summary>
/// <param name="decryptedString"></p
aram>
/// <returns></returns>
public string EncryptString(string plainText)
{
_Rijndael.Key = Encoding.ASCII.GetBytes(CR
YPTKEY);
_Rijndael.IV = Encoding.ASCII.GetBytes(CR
YPTIV);
byte[] plainTextBytes = Encoding.UTF8.GetBytes(pla
inText);
ICryptoTransform transform = _Rijndael.CreateEncryptor(
);
MemoryStream ms = new MemoryStream();
CryptoStream cs = new CryptoStream(ms,transform,
CryptoStre
amMode.Wri
te);
cs.Write(plainTextBytes,0,
plainTextB
ytes.Lengt
h);
cs.FlushFinalBlock();
byte[] cipherText = ms.ToArray();
return Convert.ToBase64String(cip
herText);
}
/// <summary>
/// Decrypt a string
/// </summary>
/// <param name="encryptedString"></p
aram>
/// <returns></returns>
public string DecryptString(string cipherText)
{
_Rijndael.Key = Encoding.ASCII.GetBytes(CR
YPTKEY);
_Rijndael.IV = Encoding.ASCII.GetBytes(CR
YPTIV);
byte[] cipherTextBytes = Convert.FromBase64String(c
ipherText)
;
ICryptoTransform transform = _Rijndael.CreateDecryptor(
);
MemoryStream ms = new MemoryStream(cipherTextByt
es);
CryptoStream cs = new CryptoStream(ms,transform,
CryptoStre
amMode.Rea
d);
byte[] plainTextBuffer = new byte[cipherTextBytes.Lengt
h];
int plainTextLength = cs.Read(plainTextBuffer,0,
cipherText
Bytes.Leng
th);
byte[] plainText = new byte[plainTextLength];
Array.Copy(plainTextBuffer
,0,plainTe
xt,0,plain
TextLength
);
return Encoding.UTF8.GetString(pl
ainText);
}
}
}
Start Free Trial