Код: Выделить всё
public static void FileDecrypt(IFileEntry file, string newFileName, string key)
{
FileStream fsCrypt = new(fileName, FileMode.Create);
byte[] iv = new byte[16];
using (Aes aes = Aes.Create())
{
aes.Key = Encoding.UTF8.GetBytes(key);
aes.IV = iv;
ICryptoTransform decryptor = aes.CreateDecryptor(aes.Key, aes.IV);
byte[] buffer = new byte[MAX_BYTES];
int read;
using Stream inputStream = file.OpenReadStream();
try
{
// ********* Fails on this READ with Unsupported ******
while ((read = inputStream.Read(buffer)) > 0)
{
byte[] result = decryptor.TransformFinalBlock(buffer, 0, read);
fsCrypt.Write(result, 0, read);
}
}
catch (Exception ex)
{
Console.WriteLine("Error: " + ex.Message);
}
}
}
Код: Выделить всё
public static void FileEncrypt(IFileEntry file, string newFileName, string key)
{
FileStream fsCrypt = new(fileName, FileMode.Create);
byte[] iv = new byte[16];
using (Aes aes = Aes.Create())
{
aes.Key = Encoding.UTF8.GetBytes(key);
aes.IV = iv;
ICryptoTransform encryptor = aes.CreateEncryptor(aes.Key, aes.IV);
// Write the results in 1 megabyte chunks
byte[] buffer = new byte[MAX_BYTES];
int read;
using CryptoStream cryptoStream = new CryptoStream((Stream)fsCrypt, encryptor, CryptoStreamMode.Write);
using Stream inputStream = file.OpenReadStream();
try
{
// WORKS here!
while ((read = inputStream.Read(buffer)) > 0)
{
cryptoStream.Write(buffer, 0, read);
}
}
catch (Exception ex)
{
Console.WriteLine("Error: " + ex.Message);
}
}
}
Я также пробовал метод ReadAsync(), но он просто попадает в эту строку и никогда не возвращается.
Подробнее здесь: https://stackoverflow.com/questions/791 ... ead-blazor
Мобильная версия