private static string DecryptWithAES(string encryptedData, Tuple<byte[],> encryptionKeys, int keySize) { string decryptedData = String.Empty; ICryptoTransform aesDecCryptoTransform = null; MemoryStream decMemStream = null; CryptoStream decCryptoStream = null; StreamReader decSr = null; try { using (AesManaged l_aesManaged = new AesManaged()) { l_aesManaged.KeySize = keySize; l_aesManaged.BlockSize = 128; l_aesManaged.Mode = CipherMode.CBC; l_aesManaged.Padding = PaddingMode.PKCS7; //Create decryptor crypto transform object using the hashed keys aesDecCryptoTransform = l_aesManaged.CreateDecryptor(encryptionKeys.Item1, encryptionKeys.Item2); byte[] originalEncData = Convert.FromBase64String(encryptedData); //Check for original encrypted value length. this is to validate the input data if (originalEncData.Length % aesDecCryptoTransform.InputBlockSize != 0) return decryptedData; //Write the encrypted value to memory stream decMemStream = new MemoryStream(originalEncData, 0, originalEncData.Length); decCryptoStream = new CryptoStream(decMemStream, aesDecCryptoTransform, CryptoStreamMode.Read); decSr = new StreamReader(decCryptoStream); decryptedData = decSr.ReadToEnd(); } } catch { } finally { if (aesDecCryptoTransform != null) aesDecCryptoTransform.Dispose(); if (decMemStream != null) decMemStream.Dispose(); } return decryptedData; }
var
This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)