//methods for Encrypt or Decrypt a FILE public static void Encrypted(string password, string Path) { var nameOnFile = ""; var newEncryption = new SDESMethods(Path.Split('\\')[Path.Split('\\').Length - 1], ref nameOnFile, password); using (var file = new FileStream(Path, FileMode.Open)) { using (var text = new BinaryReader(file)) { var name = Path.Split('\\'); name[name.Length - 1] = name[name.Length - 1].Split('.')[0] + ".cif"; var salida = string.Join("\\", name); var eightBits = ""; using (var fileToWrite = new FileStream(salida, FileMode.Create)) { using (var toWrite = new BinaryWriter(fileToWrite, Encoding.ASCII)) { toWrite.Write("::" + nameOnFile + "||"); for (int i = 0; i < text.BaseStream.Length; i++) { eightBits = Convert.ToString(text.ReadByte(), 2).PadLeft(8, '0'); toWrite.Write(Convert.ToByte(newEncryption.Ciphertext(eightBits), 2)); } } } } } }
public static void Decrypted(string password, string Path) { try { var OriginalName = ""; var NameOnFile = ""; var eightBits = ""; using (var fileForRead = new FileStream(Path, FileMode.Open)) { using (var text = new BinaryReader(fileForRead)) { ReadNames(text, ref OriginalName, ref NameOnFile); var name = Path.Split('\\'); name[name.Length - 1] = OriginalName; var salida = string.Join("\\", name); var newDecryption = new SDESMethods(NameOnFile, password); using (var fileForWrite = new FileStream(salida, FileMode.Create)) { using (var toWrite = new BinaryWriter(fileForWrite, Encoding.GetEncoding("iso-8859-1"))) { text.BaseStream.Seek(NameOnFile.Length + 5, SeekOrigin.Begin); for (int i = NameOnFile.Length + 5; i < text.BaseStream.Length; i++) { eightBits = Convert.ToString(text.ReadByte(), 2).PadLeft(8, '0'); toWrite.Write(Convert.ToByte(newDecryption.Decrypted(eightBits), 2)); } } } } } } catch (Exception e) { Console.WriteLine("No se tienen registros que dicho archivo esta cifrado con SDES"); } }