c# .net Framework 4.8. < /p>
Я использую CryptoStream Reader для расшифровки зашифрованного DataStream в рамках {} блока. удален. '". /> Изменить: удалить неверную ссылку на Microsoft Learning. < /p>
< /blockquote>
Вопрос: какова наилучшая практика, чтобы обеспечить правильную очистку этого исключения, если вызов Dispose () запускает дополнительное исключение в уловке {} или, наконец, {} block? < /p>
using (Aes aes = Aes.Create())
{
//calculate the size of the attached IV and store it and remaining encrypted data in buffers.
IVsize = aes.IV.Length;
encDataSize = encByteArray.Length - IVsize;
ivFromData = new byte[IVsize];
encData = new byte[encDataSize];
Buffer.BlockCopy(encByteArray, 0, ivFromData, 0, IVsize);
Buffer.BlockCopy(encByteArray, IVsize, encData, 0, encDataSize);
aes.IV = ivFromData;
aes.Key = passwordBytes;
MemoryStream bencr = new MemoryStream(encData);
CryptoStream cr = new CryptoStream(bencr, aes.CreateDecryptor(), CryptoStreamMode.Read);
byte[] buf = new byte[encDataSize + 1];
bool success = false;
try
{
cr.Read(buf, 0, buf.Length); //Read can throw exception on bad Aes.Key
success = true;
}
catch (Exception ex)
{
}
finally
{
cr.Dispose(); //
Подробнее здесь: https://stackoverflow.com/questions/797 ... ng-decrypt