Как справиться с распоряжением криптостриатора после исключения во время расшифровкиC#

Место общения программистов C#
Ответить
Anonymous
 Как справиться с распоряжением криптостриатора после исключения во время расшифровки

Сообщение Anonymous »

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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»