public ActionResult Cifrado(string ArchivoLeido, string Key)
        {
            //permutaciones
            var         P10         = string.Empty;
            var         P8          = string.Empty;
            var         P4          = string.Empty;
            var         EP          = string.Empty;
            var         IP          = string.Empty;
            var         ReverseIP   = string.Empty;
            CifradoSDES cifradoSDES = new CifradoSDES();

            cifradoSDES.GenerarPermutaciones(bufferLengt, ref P10, ref P8, ref P4, ref EP, ref IP, ref ReverseIP, RutaArchivos, nombreArchivo);
            //generar claves
            var resultanteLS1 = string.Empty;
            var K1            = cifradoSDES.GenerarK1(Key, P10, P8, ref resultanteLS1);
            var K2            = cifradoSDES.GenerarK2(resultanteLS1, P8);
            //cifrar
            List <string> BinaryList = cifradoSDES.LecturaArchivo(ArchivoLeido, bufferLengt);
            List <byte>   byteList   = new List <byte>();
            var           cifrar     = true;

            //var cifrar = true;
            foreach (string binary in BinaryList)
            {
                byte bytefinal = cifradoSDES.CifrarODecifrar(binary, IP, EP, K1, P4, K2, ReverseIP, cifrar);
                byteList.Add(bytefinal);
            }
            cifradoSDES.EscrituraArchivo(byteList, RutaArchivos);
            return(RedirectToAction("Download"));
        }
 public ActionResult ClaveDes(SDESViewModel sdes)
 {
     try
     {
         if (ModelState.IsValid)
         {
             if (sdes.Numero > 0 && sdes.Numero < 1024)
             {
                 //Mandar a llamar al metodo para cifrar
                 FilePath = Server.MapPath("~/Archivo");
                 var         path = Path.Combine(Server.MapPath("~/Archivo"), sdes.NombreArchivo);
                 var         pathPermutaciones = Path.Combine(Server.MapPath("~/Archivo"), "Permutaciones.txt");
                 CifradoSDES cifSDES           = new CifradoSDES();
                 cifSDES.Descifrar(sdes.NombreArchivo, path, FilePath, sdes.Numero, pathPermutaciones);
                 return(RedirectToAction(nameof(ArchivoDescifrado)));
             }
             else
             {
                 return(View(sdes));
             }
         }
         else
         {
             return(View(sdes));
         }
     }
     catch
     {
         return(RedirectToAction(nameof(ArchivoDescifrado)));
     }
 }
Пример #3
0
        public void Reset()
        {
            switch (Extension)
            {
            case "scif":
                File.Delete(RutaAbsolutaServer + NombreArchivo + ".txt");
                DescifradoSDES = new DescifradoSDES("", "", "", 0, "");
                break;

            case "txt":
                File.Delete(RutaAbsolutaServer + NombreArchivo + ".scif");
                CifradoSDES = new CifradoSDES("", "", "", 0, "");
                break;
            }

            Data.Instancia.ArchivoCargado    = false;
            Data.Instancia.EleccionOperacion = false;
        }
Пример #4
0
        public void Operar(string rutaArchivoPermutaciones)
        {
            try
            {
                switch (Extension)
                {
                case "txt":     //Cifra
                    CifradoSDES = new CifradoSDES(NombreArchivo, RutaAbsolutaArchivo, RutaAbsolutaServer, Clave, rutaArchivoPermutaciones);
                    CifradoSDES.Cifrar();
                    break;

                case "scif":     //Descifra
                    DescifradoSDES = new DescifradoSDES(NombreArchivo, RutaAbsolutaArchivo, RutaAbsolutaServer, Clave, rutaArchivoPermutaciones);
                    DescifradoSDES.Descifrar();
                    break;
                }
            }
            catch (Exception e)
            {
                throw new Exception(e.Message);
            }
        }