public void SimpleSubstitutionDecryption(FileInfo file, FormModel model) { bool threadSuccesfull = false; var timeStarted = DateTime.Now; try { //OutputFileName string outputFileName = ""; //Log loggerController.Add(" ! File dec: " + file.Name + ", Alg: " + model.AlgorithmName); //Read a file char by char, and decrypt it using (StreamReader sr = new StreamReader(file.FullName)) { //Reading the extension var extensionLength = (int)sr.Read(); char[] extension = new char[extensionLength]; for (var i = 0; i < extensionLength; i++) { extension[i] = (char)sr.Read(); } var finalExtesnion = "." + new string(extension); //Output file name outputFileName = FileNameCreator.CreateFileDecryptedName( model.Folders.OutputFolder, file.Name, finalExtesnion); using (StreamWriter sw = new StreamWriter(outputFileName)) { while (sr.Peek() >= 0) { char character = (char)sr.Read(); character = Char.ToUpper(character); if (character < 65 || character > 90) { sw.Write(character); } else { sw.Write(SimpleSubstituionCipher.Decrypt(character)); } if (LoadedFilesController._END_OF_ENC_DEC_THREADS) { sr.Dispose(); sw.Dispose(); File.Delete(outputFileName); Thread.CurrentThread.Abort(); } } } } threadSuccesfull = true; Thread.Sleep(250); } catch (Exception ex) { loggerController.Add(" ? Dec exception: " + ex.Message); threadSuccesfull = false; } finally { this.ThreadEnds(file, threadSuccesfull, timeStarted); } }
// //----------------------------------------------------------------------------------------------------- // Algorithms //----------------------------------------------------------------------------------------------------- // public void SimpleSubstitutionEncryption(FileInfo file, FormModel model) { bool threadSuccesfull = false; var timeStarted = DateTime.Now; try { //OutputFileName string outputFileName = FileNameCreator.CreateFileEncryptedName( model.Folders.OutputFolder, file.Name, model.AlgorithmName); //Log loggerController.Add(" ! File enc: " + file.Name + ", Alg: " + model.AlgorithmName); //Read a file char by char, and encrypt it using (StreamReader sr = new StreamReader(file.FullName)) { using (StreamWriter sw = new StreamWriter(outputFileName)) { //Writing the extension char[] extension = file.Extension.Substring(1, file.Extension.Length - 1).ToCharArray(); char extensionLength = (char)extension.Length; sw.Write(extensionLength); for (var k = 0; k < extension.Length; k++) { sw.Write(extension[k]); } //Reading - encrypting - saving data while (sr.Peek() >= 0) { char character = (char)sr.Read(); character = Char.ToLower(character); if (character < 97 || character > 122) { sw.Write(character); } else { sw.Write(SimpleSubstituionCipher.Encrypt(character)); } if (LoadedFilesController._END_OF_ENC_DEC_THREADS) { sr.Dispose(); sw.Dispose(); File.Delete(outputFileName); Thread.CurrentThread.Abort(); } } } } threadSuccesfull = true; Thread.Sleep(250); } catch (Exception ex) { loggerController.Add(" ? Enc exception: " + ex.Message); threadSuccesfull = false; } finally { this.ThreadEnds(file, threadSuccesfull, timeStarted); } }