コード例 #1
0
        public IActionResult Descifrar([FromRoute] string method, [FromForm] IFormFile file, [FromForm] Datos key)
        {
            string nombre = (file.FileName);

            using var fileRead = file.OpenReadStream();
            try
            {
                if (nombre.Contains(".csr") && key.Word != null)
                {
                    var BfileRead = new BufferedStream(fileRead);
                    var reader    = new StreamReader(BfileRead);

                    string prueba = reader.ReadToEnd();

                    reader.Close();
                    BfileRead.Close();
                    fileRead.Close();

                    //WRITE
                    var fileWrite  = new FileStream(Path.GetFileNameWithoutExtension(file.FileName) + ".txt", FileMode.OpenOrCreate);
                    var BfileWrite = new BufferedStream(fileWrite);
                    var writer     = new StreamWriter(BfileWrite);

                    Cifrado hola = new Cifrado();

                    string encoded = hola.encoder(key.Word);

                    string salida = "";
                    salida = hola.DecifrarCesar(prueba, encoded);

                    foreach (char item in salida)
                    {
                        writer.Write(item);
                    }

                    writer.Close();
                    BfileWrite.Close();
                    fileWrite.Close();

                    var files = System.IO.File.OpenRead(Path.GetFileNameWithoutExtension(file.FileName) + ".txt");
                    return(new FileStreamResult(files, "application/txt")
                    {
                        FileDownloadName = Path.GetFileNameWithoutExtension(file.FileName) + ".txt"
                    });
                }
                else if (nombre.Contains(".zz") && key.Levels != null)
                {
                    var BfileRead = new BufferedStream(fileRead);
                    var reader    = new StreamReader(BfileRead);

                    string prueba = reader.ReadToEnd();

                    reader.Close();
                    BfileRead.Close();
                    fileRead.Close();

                    //WRITE
                    var fileWrite  = new FileStream(Path.GetFileNameWithoutExtension(file.FileName) + ".txt", FileMode.OpenOrCreate);
                    var BfileWrite = new BufferedStream(fileWrite);
                    var writer     = new StreamWriter(BfileWrite);

                    Cifrado hola = new Cifrado();

                    string salida = "";
                    salida = hola.Descifrarzigzag(prueba, key.Levels);

                    foreach (char item in salida)
                    {
                        writer.Write(item);
                    }

                    writer.Close();
                    BfileWrite.Close();
                    fileWrite.Close();

                    var files = System.IO.File.OpenRead(Path.GetFileNameWithoutExtension(file.FileName) + ".txt");
                    return(new FileStreamResult(files, "application/txt")
                    {
                        FileDownloadName = Path.GetFileNameWithoutExtension(file.FileName) + ".txt"
                    });
                }
                else if (nombre.Contains(".rt") && key.Rows != null && key.Columns != null)
                {
                    var BfileRead = new BufferedStream(fileRead);
                    var reader    = new StreamReader(BfileRead);

                    string prueba = reader.ReadToEnd();

                    reader.Close();
                    BfileRead.Close();
                    fileRead.Close();

                    //WRITE
                    var fileWrite  = new FileStream(Path.GetFileNameWithoutExtension(file.FileName) + ".txt", FileMode.OpenOrCreate);
                    var BfileWrite = new BufferedStream(fileWrite);
                    var writer     = new StreamWriter(BfileWrite);

                    Cifrado hola = new Cifrado();

                    string salida = "";
                    salida = hola.DecifrarRuta(prueba, key.Rows, key.Columns);

                    foreach (char item in salida)
                    {
                        writer.Write(item);
                    }

                    writer.Close();
                    BfileWrite.Close();
                    fileWrite.Close();

                    var files = System.IO.File.OpenRead(Path.GetFileNameWithoutExtension(file.FileName) + ".txt");
                    return(new FileStreamResult(files, "application/rt")
                    {
                        FileDownloadName = Path.GetFileNameWithoutExtension(file.FileName) + ".txt"
                    });
                }
                else
                {
                    return(BadRequest("Error no ingreso método o llave"));
                }
            }
            catch (Exception ex)
            {
                return(BadRequest(ex.Message));
            }
        }