мне нужно склеп, а затем расшифровывать память (оригинальный большой файл PDF). Я попробовал следующий код: < /p>
public static string GenerateKey()
{
var desCrypto = (DESCryptoServiceProvider)DES.Create();
return Encoding.ASCII.GetString(desCrypto.Key);
}
public static MemoryStream Encrypt(Stream fsInput,string sKey)
{
var fsEncrypted=new MemoryStream();
var des = new DESCryptoServiceProvider
{
Key = Encoding.ASCII.GetBytes(sKey),
IV = Encoding.ASCII.GetBytes(sKey)
};
var desencrypt = des.CreateEncryptor();
var cryptostream = new CryptoStream(fsEncrypted,desencrypt,CryptoStreamMode.Write);
var bytearrayinput = new byte[fsInput.Length];
fsInput.Read(bytearrayinput, 0, bytearrayinput.Length);
cryptostream.Write(bytearrayinput, 0, bytearrayinput.Length);
fsInput.Close();
fsEncrypted.Flush();
fsEncrypted.Position = 0;
return fsEncrypted;
}
public static MemoryStream Decrypt(Stream fsread,string sKey)
{
var des = new DESCryptoServiceProvider
{
Key = Encoding.ASCII.GetBytes(sKey),
IV = Encoding.ASCII.GetBytes(sKey)
};
var sOutputFilename = new MemoryStream();
var desdecrypt = des.CreateDecryptor();
var cryptostreamDecr = new CryptoStream(fsread,desdecrypt,CryptoStreamMode.Read);
var fsDecrypted = new StreamWriter(sOutputFilename);
fsDecrypted.Write(new StreamReader(cryptostreamDecr).ReadToEnd());
fsDecrypted.Flush();
fsDecrypted.Close();
sOutputFilename.Position = 0;
return sOutputFilename;
}
< /code>
Пример вызова: < /p>
var sSecretKey = FileHelper.GenerateKey();
var encyptedPdfContent = FileHelper.Encrypt(httpPostedFile.InputStream, sSecretKey);
var decryptedPdfContent = FileHelper.Decrypt(encyptedPdfContent, sSecretKey);
< /code>
Encrypt, кажется, работает, как и ожидалось, но когда я пытаюсь расшифровать < /p>
fsDecrypted.Write(new StreamReader(cryptostreamDecr).ReadToEnd());
< /code>
возвращает мне плохие данные < /code> Исключение. < /p>
Что не так в моем коде? У меня нет строки. У меня есть память, которая вообще не кодируется!
Подробнее здесь: https://stackoverflow.com/questions/406 ... morystream
Шифровать и расшифровать память ⇐ C#
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение