سلام
کار بسیار ساده ای که من قبلا کردم این بود که فایل رو به صورت باینری می خونم و داخل یک temp میریزم بعد اون و بایت به بایت فایل رو تغییر می دادم بعد ذخیره می کردم
برای بازیابی هم همین کار رو میکنه با این تفاوت که تغییر رو برعکس اعمال می کنه
تغییری که من دادم این بود که هربایت رو یک واحد اضافه می کردم ، شما میتونی هر کار دیگه ای که مد نظرت هست انجام بدی
//declare variables
byte Temp=0;
string tempAddress="d:\\encoded.txt";
BinaryReader binFile = new BinaryReader(File.Open(txtAddress.Text, FileMode.Open));
BinaryWriter binTemp = new BinaryWriter(File.Create(tempAddress));
for (int i = 0; i < binFile.BaseStream.Length; i++)
{
Temp = binFile.ReadByte();
Temp++;
binTemp.BaseStream.WriteByte(Temp);
}
binTemp.Close();
binFile.Close();