예제 #1
0
 public IActionResult Decipher([FromForm] IFormFile file, [FromForm] Key key)
 {
     try
     {
         if (key != null && file != null)
         {
             string     method       = file.FileName.Split('.')[1];
             string     RutaOriginal = Path.GetFullPath("Archivos Originales\\" + file.FileName);
             string     RutaCifrado;
             FileStream ArchivoOriginal = new FileStream(RutaOriginal, FileMode.OpenOrCreate);
             file.CopyTo(ArchivoOriginal);
             ArchivoOriginal.Close();
             RutaCifrado = Path.GetFullPath("Archivos Decifrado\\" + file.FileName.Split('.')[0] + ".txt");
             if (method == "rt")
             {
                 CifradoRuta.Desencriptar(RutaOriginal, RutaCifrado, key.columns, key.rows);
             }
             else if (method == "zz")
             {
                 CifradoZigZag.Desencriptar(RutaOriginal, RutaCifrado, key.levels);
             }
             else if (method == "csr")
             {
                 CifradoCesar.Desencriptar(RutaOriginal, RutaCifrado, key.word);
             }
             else
             {
                 return(BadRequest());
             }
             FileStream       ArchivoFinal = new FileStream(RutaCifrado, FileMode.Open);
             FileStreamResult FileFinal    = new FileStreamResult(ArchivoFinal, "text/rt");
             return(FileFinal);
         }
         else
         {
             return(BadRequest());
         }
     }
     catch (Exception ex)
     {
         return(BadRequest(ex.Message));
     }
 }