public string AESforString(string rawString, string key, string IV, bool toEncrypt)
{
try
{
RijndaelManaged oAES = new RijndaelManaged();
Rfc2898DeriveBytes oRfc2898DeriveBytes = new Rfc2898DeriveBytes(key, Encoding.UTF8.GetBytes(IV));
oAES.Padding = PaddingMode.PKCS7;
oAES.Mode = CipherMode.CBC;
oAES.KeySize = 256;
oAES.Key = oRfc2898DeriveBytes.GetBytes(32);
oAES.BlockSize = 128;
oAES.IV = oRfc2898DeriveBytes.GetBytes(16);
byte[] rawData;
byte[] result;
if (toEncrypt)
{
rawData = Encoding.UTF8.GetBytes(rawString);
result = oAES.CreateEncryptor().TransformFinalBlock(rawData, 0, rawData.Length);
oAES.Clear();
return Convert.ToBase64String(result);
}
else
{
rawData = Convert.FromBase64String(rawString);
result = oAES.CreateDecryptor().TransformFinalBlock(rawData, 0, rawData.Length);
oAES.Clear();
return Encoding.UTF8.GetString(result);
}
}
catch (CryptographicException cex)
{
return cex.Message;
}
}
2009/04/13
AES String Encryption/Decryption
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment