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);
        }
Beispiel #3
0
        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"));
        }
Beispiel #4
0
        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;
            }
        }
Beispiel #5
0
 public async Task <FileStreamResult> cifrarZigZag([FromForm] NumbersDataTaken requestdata)
 {
     ZigZag.Cipher(requestdata);
     return(await Download($"temp\\{requestdata.Name}.txt"));
 }