Я зашифровал файл и написал зашифрованный контент в тот же файл. Но когда я дешифрую файл и пытаюсь записать его на то же, я не могу очистить старый контент, т. Е. Зашифрованный текст. Как я мог это сделать.Расшифровать файл и записать его в файл C#
шифрованной код
static void EncryptFile(string sInputFilename,string sKey)
{
FileStream fsInput = new FileStream(sInputFilename,
FileMode.Open,
FileAccess.ReadWrite);
DESCryptoServiceProvider DES = new DESCryptoServiceProvider();
DES.Key = ASCIIEncoding.ASCII.GetBytes(sKey);
DES.IV = ASCIIEncoding.ASCII.GetBytes(sKey);
ICryptoTransform desencrypt = DES.CreateEncryptor();
CryptoStream cryptostream = new CryptoStream(fsInput,
desencrypt,
CryptoStreamMode.Write);
byte[] bytearrayinput = new byte[fsInput.Length];
fsInput.Read(bytearrayinput, 0, bytearrayinput.Length);
fsInput.SetLength(0);
cryptostream.Write(bytearrayinput, 0, bytearrayinput.Length);
cryptostream.Close();
fsInput.Close();
}
Дешифровка Код
static void DecryptFile(string sInputFilename,
string sKey)
{
DESCryptoServiceProvider DES = new DESCryptoServiceProvider();
DES.Key = ASCIIEncoding.ASCII.GetBytes(sKey);
DES.IV = ASCIIEncoding.ASCII.GetBytes(sKey);
FileStream fsread = new FileStream(sInputFilename,
FileMode.Open,
FileAccess.ReadWrite);
ICryptoTransform desdecrypt = DES.CreateDecryptor();
CryptoStream cryptostreamDecr = new CryptoStream(fsread,
desdecrypt,
CryptoStreamMode.Read);
int data;
while ((data = cryptostreamDecr.ReadByte()) != -1)
{
fsread.WriteByte((byte)data);
}
fsread.Close();
cryptostreamDecr.Close();
}
Что такое заброшенное исключение? – dasheddot
Я добавил fsread.SetLength (0), чтобы очистить содержимое и написать его, дайте мне ошибку. Необработанное исключение типа «System.Security.Cryptography.CryptographicException» произошло в mscorlib.dll. Дополнительная информация: Плохие данные. – json
Запишите расшифрованный файл на новое имя, удалите зашифрованный файл, переименуйте дешифрованный файл, чтобы исправить имя. (???) – lcryder