/* * Decrypt and deserialize function. */ public static DataObjectSerializable decryptNdeserialize(string filename) { //Create a file stream to read the encrypted file back. FileStream fsread = new FileStream(filename, FileMode.Open, FileAccess.Read); //create des crypto service provider object. des = new DESCryptoServiceProvider(); des.Padding = PaddingMode.PKCS7; des.Mode = CipherMode.CBC; des.Key = Key; des.IV = IV; //create Descryptor. desencrypt = des.CreateDecryptor(); //Construct the cryptostream with filestream that we use to store data that we read from a file. CryptoStream cryptStream = new CryptoStream(fsread, desencrypt, CryptoStreamMode.Read); //create byte array object with length of our filestream. byte[] byteArray = new byte[fsread.Length]; //store the byte in cryptStream to our byteArray. cryptStream.Read(byteArray, 0, byteArray.Length); //create a new memory stream. MemoryStream memoryStream = new MemoryStream(); //write the byteArray data to memory stream. memoryStream.Write(byteArray, 0, byteArray.Length); //create formatter. IFormatter formatter = new BinaryFormatter(); //reposition our memory stream to position 0. memoryStream.Seek(0, SeekOrigin.Begin); //assign the deserializated object to our data object. DataObjectSerializable dataObject = (DataObjectSerializable)formatter.Deserialize(memoryStream); // flush and close all stream. cryptStream.Flush(); cryptStream.Close(); fsread.Close(); memoryStream.Flush(); memoryStream.Close(); return(dataObject); }
static void Main(string[] args) { //File path string filename = "D:\\SelfLearning\\c#\\Serialization\\file.dat"; //Create data object. dataObject = new DataObjectSerializable(); //Set the data object data. dataObject.Name = "http://ubuntuanakramli.blogspot.com/"; dataObject.Age = 2015 - 2011; //encrypt and serialize. encryptNserialize(filename); //decrpyt and deserialize , store result to dataObject. dataObject = decryptNdeserialize(filename); //print out the result. Console.WriteLine("Name" + dataObject.Name); Console.WriteLine("Age" + dataObject.Age); Console.ReadKey(); }