public Task <IActionResult> CipherZigZag([FromForm] CipherZigZagRequest CipherZigZagRequest) { if (CipherZigZagRequest.File.Length > 0) { if (!Directory.Exists(_environment.WebRootPath + "\\Cipher\\")) { Directory.CreateDirectory(_environment.WebRootPath + "\\Cipher\\"); } using var _fileStream = System.IO.File.Create(_environment.WebRootPath + "\\Cipher\\" + CipherZigZagRequest.File.FileName); CipherZigZagRequest.File.CopyTo(_fileStream); _fileStream.Flush(); _fileStream.Close(); ZCipher.Cipher(_environment.WebRootPath + "\\Cipher\\" + CipherZigZagRequest.File.FileName, _environment.WebRootPath + "\\Cipher\\" + CipherZigZagRequest.Name + ".txt", CipherZigZagRequest.Key); return(GetFile(Convert.ToString(CipherZigZagRequest.Name), "\\Cipher\\")); } return(null); }
/// <summary> /// Cifrado ZigZag /// </summary> /// <param name="path"></param> /// <param name="levels"></param> /// <param name="formFile"></param> public void Cipher_ZigZag(string path, int levels, IFormFile formFile) { var fileByte = new byte[formFile.Length]; var i = 0; using (var lectura = new BinaryReader(File.Open(path, FileMode.Open))) { while (lectura.BaseStream.Position != lectura.BaseStream.Length) { fileByte[i] = lectura.ReadByte(); i++; } } ZigZag zigZag = new ZigZag(); var txtDecifrado = zigZag.Cipher(fileByte, levels); var txtResultado = new byte[1]; txtResultado = new byte[txtDecifrado.Length]; txtResultado = txtDecifrado; var new_Path = Path.Combine($"Cipher", Path.GetFileNameWithoutExtension(path) + ".zz"); save_File(new_Path, txtResultado); }
public async Task <FileStreamResult> cifrar(string method, [FromForm] ValuesDataTaken data) { switch (method) { case "zigzag": ZigZag.Cipher(new NumbersDataTaken { File = data.File, Name = data.Name, levels = Convert.ToInt32(data.levels) }); break; case "cesar": Cesar.Cipher(data); break; case "route": Route.Cipher(new NumbersDataTaken { File = data.File, Name = data.Name, rows = Convert.ToInt32(data.rows), columns = Convert.ToInt32(data.columns) }); break; default: break; } var memory = new MemoryStream(); using (var stream = new FileStream($"{data.Name}.txt", FileMode.Open)) { await stream.CopyToAsync(memory); } memory.Position = 0; //Retorno del contenido del archivo en Postman. return(File(memory, MediaTypeNames.Application.Octet, $"{ data.Name}.txt")); }
static void Main(string[] args) { ValuesDataTaken data; string method = ""; Console.WriteLine("Escriba la ruta del archivo: ", data.File); Console.ReadLine(); Console.WriteLine("Escriba nombre del nuevo archivo ", data.Name); Console.ReadLine(); Console.WriteLine("Escriba la ruta del metodo a utilizar: ", method); Console.ReadLine(); //Eleccion de cifrado. switch (method) { case "cipher/cesar": Console.WriteLine("Escriba la clave: ", data.word); Console.ReadLine(); Cesar.Cipher(data); break; case "cipher/zigzag": Console.WriteLine("Escriba la cantidad de olas: ", data.levels); Console.ReadLine(); ZigZag.Cipher(new NumbersDataTaken { File = data.File, Name = data.Name, levels = Convert.ToInt32(data.levels) }); break; case "cipher/route": Console.WriteLine("Escriba la cantidad de olas: ", data.rows); Console.ReadLine(); Console.WriteLine("Escriba la cantidad de olas: ", data.columns); Console.ReadLine(); Route.Cipher(new NumbersDataTaken { File = data.File, Name = data.Name, rows = Convert.ToInt32(data.rows), columns = Convert.ToInt32(data.columns) }); break; case "decipher/cesar": Console.WriteLine("Escriba la clave: ", data.word); Console.ReadLine(); Cesar.Decipher(data); break; case "decipher/zigzag": Console.WriteLine("Escriba la cantidad de olas: ", data.levels); Console.ReadLine(); ZigZag.Decipher(new NumbersDataTaken { File = data.File, Name = data.Name, levels = Convert.ToInt32(data.levels) }); break; case "decipher/route": Console.WriteLine("Escriba la cantidad de olas: ", data.rows); Console.ReadLine(); Console.WriteLine("Escriba la cantidad de olas: ", data.columns); Console.ReadLine(); Route.Decipher(new NumbersDataTaken { File = data.File, Name = data.Name, rows = Convert.ToInt32(data.rows), columns = Convert.ToInt32(data.columns) }); break; } }
public async Task <FileStreamResult> cifrarZigZag([FromForm] NumbersDataTaken requestdata) { ZigZag.Cipher(requestdata); return(await Download($"temp\\{requestdata.Name}.txt")); }