Example #1
0
        public ActionResult Login(string username, string password)
        {
            SDES cipher = new SDES();

            bool correcto = false;
            var  personas = obtenerPersonas();

            foreach (var item in personas)
            {
                if (item.username == username && item.password == cipher.CifrarTexto(password, password.Length))
                {
                    correcto = true;
                    break;
                }
            }

            if (correcto)
            {
                string strUrl = String.Format("https://localhost:44316/api/token");

                string postUrl = $"{strUrl}/?username={username}&password={password}";

                WebRequest requestObjPost = WebRequest.Create(postUrl);
                requestObjPost.Method      = "POST";
                requestObjPost.ContentType = "application/json";

                try
                {
                    using (var streamWriter = new StreamWriter(requestObjPost.GetRequestStream()))
                    {
                        streamWriter.Write("");
                        streamWriter.Flush();
                        streamWriter.Close();

                        var httpResponse = (HttpWebResponse)requestObjPost.GetResponse();

                        using (var streamReader = new StreamReader(httpResponse.GetResponseStream()))
                        {
                            var result = streamReader.ReadToEnd();

                            //Guardar cookie con el token de inicio de sesion
                            HttpContext.Response.Cookies.Add(new HttpCookie("userID", result));

                            return(RedirectToAction("Index", "Chat"));
                        }
                    }
                }
                catch (Exception)
                {
                    ViewBag.Message = "Usuario o contraseña incorrecto";

                    return(View());
                }
            }
            else
            {
                ViewBag.Message = "Credenciales incorrectas";
                return(View());
            }
        }
        public void Transfer([FromForm] TransferRequest objTra)
        {
            SDES.GetKey();
            BStarTree <BranchProductRequest> .StartTree("BranchProduct",
                                                        new StringToObject(BranchProductRequest.StringToObject),
                                                        new ObjectToString(BranchProductRequest.ObjectToString));

            var ArrayA = BStarTree <BranchProductRequest> .Road(new BranchProductRequest { IdBranch = objTra.id1, IdProduct = objTra.idProduct }, 1);

            var ArrayB = BStarTree <BranchProductRequest> .Road(new BranchProductRequest { IdBranch = objTra.id2, IdProduct = objTra.idProduct }, 1);

            if (ArrayA.Count != 0 && ArrayA[0].Inventory - objTra.Quantity >= 0)
            {
                if (ArrayB.Count == 0)
                {
                    BStarTree <BranchProductRequest> .InsertTree(new BranchProductRequest { IdBranch = objTra.id2, IdProduct = objTra.idProduct, Inventory = objTra.Quantity });
                }
                else
                {
                    ArrayB[0].Inventory = ArrayB[0].Inventory + objTra.Quantity;
                    BStarTree <BranchProductRequest> .Modify(ArrayB[0], new string[2] {
                        ArrayB[0].Inventory.ToString(), ""
                    }, new Modify(BranchProductRequest.Update));
                }

                ArrayA[0].Inventory = ArrayA[0].Inventory - objTra.Quantity;
                BStarTree <BranchProductRequest> .Modify(ArrayA[0], new string[2] {
                    ArrayA[0].Inventory.ToString(), ""
                }, new Modify(BranchProductRequest.Update));
            }
        }
Example #3
0
        private void ExecuteSDES()
        {
            if (this.model.SDESKey.Length != 10 ||
                !Regex.IsMatch(this.model.SDESKey, "^[01]+$"))
            {
                MessageBox.Show(
                    "Неправильний ключ",
                    "Помилка",
                    MessageBoxButton.OK,
                    MessageBoxImage.Error);
            }

            var system = new SDES(this.model.Alphabet)
            {
                IsStrict = this.model.IsStrict
            };

            var key = new BitArray(
                this.model.SDESKey.Select(ch => ch == '1').ToArray());

            if (this.model.Action == "Зашифрувати")
            {
                this.Encrypt(system, new Key <BitArray>(key));
            }
            else
            {
                this.Decrypt(system, new Key <BitArray>(key));
            }
        }
Example #4
0
        public void Add([FromForm] OfficeProduct info)
        {
            ArbolB <OfficeProduct> .IniciarArbol("OfficeProduct", new StringToObject(OfficeProduct.StringToObject), new ObjectToString(OfficeProduct.ObjectToString));

            SDES.obtainKey();
            ArbolB <OfficeProduct> .InsertarArbol(new OfficeProduct { IdOffice = info.IdOffice, IdProduct = info.IdProduct, Inventory = info.Inventory });
        }
Example #5
0
        public static void SDESProcess(string user1, string user2)
        {
            int exit = 1;

            while (exit == 1)
            {
                Console.Clear();
                Console.WriteLine(" --- PRUEBAS ---");
                Console.WriteLine("\n --- MongoDB ---");
                var client     = new MongoClient("mongodb://localhost:27017");
                var db         = client.GetDatabase("local");
                var messagesDB = db.GetCollection <MessageModel>("messages");
                List <MessageModel> result1 = messagesDB.Find(x => (x.Transmitter == user1 && x.Receiver == user2 && x.Type == 1) || (x.Transmitter == user2 && x.Receiver == user1 && x.Type == 1)).ToList().OrderBy(x => x.Date).ToList();
                for (int i = 0; i < result1.Count; i++)
                {
                    Console.WriteLine((i + 1) + ") " + result1[i].Transmitter + " | " + result1[i].Receiver + " | " + result1[i].Id + " | " + result1[i].Date);
                }
                Console.WriteLine("\nIngrese el número del mensaje a descrifrar");
                int option = Convert.ToInt32(Console.ReadLine());

                Console.WriteLine("\nIngrese la llave");
                int key = Convert.ToInt32(Console.ReadLine());

                SDES sdes = new SDES();
                sdes.SetKeys(key);

                Console.WriteLine($"\nMensaje cifrado\n{result1[option - 1].Content}\n\nMensaje descifrado\n{ConvertToString(sdes.DecryptText(ConvertToByte(result1[option - 1].Content)))}");

                Console.WriteLine("\n¿Desea descifrar otro mensaje? (1) Sí (0) No");
                exit = Convert.ToInt32(Console.ReadLine());
            }
        }
Example #6
0
        public ActionResult Descargar(string path)
        {
            //Recuperar path
            path = path.Replace("~", "/");

            int cifradoValue = Int16.Parse(HttpContext.Request.Cookies["cifrado"].Value);

            //Descifrar
            SDES   cipher      = new SDES();
            string rutaCifrado = cipher.DescifrarArchivo(path, Directories.directorioTemporal, cifradoValue);

            //Descomprimir
            string rutaComprimido = LZW.descomprimirArchivo(rutaCifrado, Directories.directorioDescargas);

            //Descargar

            if (!String.IsNullOrEmpty(rutaComprimido))
            {
                byte[] filedata = System.IO.File.ReadAllBytes(rutaComprimido);

                var cd = new System.Net.Mime.ContentDisposition
                {
                    FileName = Path.GetFileName(rutaComprimido),
                    Inline   = true,
                };

                Response.AppendHeader("Content-Disposition", cd.ToString());
                return(File(filedata, "application/force-download"));
            }
            else
            {
                return(RedirectToAction("Index"));
            }
        }
Example #7
0
        public void Add([FromForm] OfficeData info)
        {
            ArbolB <OfficeData> .IniciarArbol("Office", new StringToObject(OfficeData.StringToObject), new ObjectToString(OfficeData.ObjectToString));

            SDES.obtainKey();
            ArbolB <OfficeData> .InsertarArbol(new OfficeData { ID = ArbolB <OfficeData> .newID(), Name = info.Name, Address = info.Address });
        }
Example #8
0
        public void Add([FromForm] ProductData info)
        {
            ArbolB <ProductData> .IniciarArbol("Product", new StringToObject(ProductData.StringToObject), new ObjectToString(ProductData.ObjectToString));

            SDES.obtainKey();
            ArbolB <ProductData> .InsertarArbol(new ProductData { ID = ArbolB <ProductData> .newID(), Name = info.Name, Price = info.Price });
        }
Example #9
0
        public List <OfficeData> OfficeShow([FromForm] int id)
        {
            ArbolB <OfficeData> .IniciarArbol("Office", new StringToObject(OfficeData.StringToObject), new ObjectToString(OfficeData.ObjectToString));

            SDES.obtainKey();
            return(ArbolB <OfficeData> .Recorrido(new OfficeData { ID = id }, 1));
        }
Example #10
0
        public List <ProductData> ProductShow([FromForm] int id)
        {
            ArbolB <ProductData> .IniciarArbol("Product", new StringToObject(ProductData.StringToObject), new ObjectToString(ProductData.ObjectToString));

            SDES.obtainKey();
            return(ArbolB <ProductData> .Recorrido(new ProductData { ID = id }, 1));
        }
Example #11
0
        public List <ProductData> AllProduct()
        {
            ArbolB <ProductData> .IniciarArbol("Product", new StringToObject(ProductData.StringToObject), new ObjectToString(ProductData.ObjectToString));

            SDES.obtainKey();
            return(ArbolB <ProductData> .Recorrido(null));
        }
Example #12
0
        public List <OfficeProduct> AllOfficeProduct()
        {
            ArbolB <OfficeProduct> .IniciarArbol("OfficeProduct", new StringToObject(OfficeProduct.StringToObject), new ObjectToString(OfficeProduct.ObjectToString));

            SDES.obtainKey();
            return(ArbolB <OfficeProduct> .Recorrido(null));
        }
Example #13
0
        public void Add([FromForm] IFormFile info)
        {
            ArbolB <ProductData> .IniciarArbol("Product", new StringToObject(ProductData.StringToObject), new ObjectToString(ProductData.ObjectToString));

            SDES.obtainKey();
            ProductData.InsertCSV(info.OpenReadStream());
        }
Example #14
0
        public void transfer([FromForm] int idProduct, [FromForm] int idO1, [FromForm] int idO2, [FromForm] int cant)
        {
            SDES.obtainKey();
            ArbolB <OfficeProduct> .IniciarArbol("OfficeProduct", new StringToObject(OfficeProduct.StringToObject), new ObjectToString(OfficeProduct.ObjectToString));

            var data1 = ArbolB <OfficeProduct> .Recorrido(new OfficeProduct { IdOffice = idO1, IdProduct = idProduct }, 1);

            var data2 = ArbolB <OfficeProduct> .Recorrido(new OfficeProduct { IdOffice = idO2, IdProduct = idProduct }, 1);

            if (data1.Count != 0 && data1[0].Inventory - cant >= 0)
            {
                if (data2.Count == 0)
                {
                    ArbolB <OfficeProduct> .InsertarArbol(new OfficeProduct { IdOffice = idO2, IdProduct = idProduct, Inventory = cant });
                }
                else
                {
                    data2[0].Inventory = data2[0].Inventory + cant;
                    ArbolB <OfficeProduct> .Modificar(data2[0], new string[2] {
                        data2[0].Inventory.ToString(), string.Empty
                    }, new Modify(OfficeProduct.Alter));
                }
                data1[0].Inventory = data1[0].Inventory - cant;
                ArbolB <OfficeProduct> .Modificar(data1[0], new string[2] {
                    data1[0].Inventory.ToString(), string.Empty
                }, new Modify(OfficeProduct.Alter));
            }
        }
Example #15
0
        public List <OfficeProduct> OfficeProductShow([FromForm] int idOffice, [FromForm] int idProduct)
        {
            ArbolB <OfficeProduct> .IniciarArbol("OfficeProduct", new StringToObject(OfficeProduct.StringToObject), new ObjectToString(OfficeProduct.ObjectToString));

            SDES.obtainKey();
            return(ArbolB <OfficeProduct> .Recorrido(new OfficeProduct { IdOffice = idOffice, IdProduct = idProduct }, 1));
        }
        public string Create(string senderReceptor, string textMessage, HttpPostedFileBase file)
        {
            using (var client = new HttpClient())
            {
                client.BaseAddress = new Uri("http://localhost:53273/api/Texts");
                if (textMessage.Equals(string.Empty) && file == null)
                {
                    return("No puede enviar mensajes vacios");
                }
                if (textMessage != string.Empty)
                {
                    var cipher  = new SDES();
                    var getUser = new UsersLogic();

                    var receptor = senderReceptor.Split('|');

                    var a           = getUser.getUserByUsername(receptor[1]).PrivateKey;
                    var receptorKey = (Math.Pow(g, a) % p);

                    var key       = BigInteger.ModPow((int)receptorKey, UserPrivateKey, p);
                    var cipherKey = Convert.ToString(((int)key), 2);

                    textMessage = cipher.CipherText(textMessage, cipherKey);
                }
                else
                {
                    textMessage = string.Empty;
                }
                var compressFile = new CompresssDecompressActions();
                var message      = new MessageModel()
                {
                    SenderReceptor = senderReceptor,
                    Message        = textMessage,
                    UploadedFile   = file != null?compressFile.generateCharactersList(file) : "",
                                         PublicKey = (int)(Math.Pow(g, UserPrivateKey) % p)
                };

                var postTask = client.PostAsJsonAsync("Messages", message);
                postTask.Wait();

                var result = postTask.Result;
                if (result.IsSuccessStatusCode)
                {
                    return("200");
                }
                else
                {
                    if ((int)result.StatusCode >= 400 && (int)result.StatusCode < 500)
                    {
                        return(result.StatusCode.ToString() + ". Revise los datos ingresados :D");
                    }
                    else
                    {
                        return(result.StatusCode.ToString() + ". Contacte a un desarrollador del sistema D:");
                    }
                }
            }
        }
Example #17
0
        public void Alter([FromForm] OfficeProduct info)
        {
            SDES.obtainKey();
            ArbolB <OfficeProduct> .IniciarArbol("OfficeProduct", new StringToObject(OfficeProduct.StringToObject), new ObjectToString(OfficeProduct.ObjectToString));

            ArbolB <OfficeProduct> .Modificar(info, new string[2] {
                info.Inventory.ToString(), null
            }, new Modify(OfficeProduct.Alter));
        }
Example #18
0
        public List <ProductRequest> ProductShow(int id)
        {
            BStarTree <ProductRequest> .StartTree("Product",
                                                  new StringToObject(ProductRequest.StringToObject),
                                                  new ObjectToString(ProductRequest.ObjectToString));

            SDES.GetKey();
            return(BStarTree <ProductRequest> .Road(new ProductRequest { ID = id }, 1));
        }
Example #19
0
        public List <BranchProductRequest> BranchProductRequestShow(int idBra, int idPro)
        {
            BStarTree <BranchProductRequest> .StartTree("BranchProduct",
                                                        new StringToObject(BranchProductRequest.StringToObject),
                                                        new ObjectToString(BranchProductRequest.ObjectToString));

            SDES.GetKey();
            return(BStarTree <BranchProductRequest> .Road(new BranchProductRequest { IdBranch = idBra, IdProduct = idPro }, 1));
        }
        public ActionResult Decifrar(string Key, string ToUser)
        {
            var User       = new Users();
            var messages   = User.GetMessages();
            var StringList = new List <string>();
            var ToRList    = new List <string>();

            foreach (MessagesElements elements in messages)
            {
                if ((elements.Transmitter == Request.Cookies["User"]["username"]) && (elements.Reciever == ToUser))
                {
                    StringList.Add(elements.text);
                    ToRList.Add("1");
                }
                else
                {
                    if ((elements.Transmitter == ToUser) && (elements.Reciever == Request.Cookies["User"]["username"]))
                    {
                        StringList.Add(elements.text);
                        ToRList.Add("0");
                    }
                }
            }
            //Decifrar cada mensaje con la llave que se recibió
            SDES DecifradoSDES = new SDES();
            var  P10           = "8537926014";
            var  P8            = "79358216";
            var  P4            = "0321";
            var  EP            = "01323210";
            var  IP            = "63572014";
            var  ReverseIP     = DecifradoSDES.GenerarIPInverso(IP);
            //generar claves
            var resultanteLS1 = DecifradoSDES.GenerarLS1(Key, P10);
            var K1            = DecifradoSDES.GenerarK1(resultanteLS1, P8);
            var K2            = DecifradoSDES.GenerarK2(resultanteLS1, P8);
            var BinaryList    = DecifradoSDES.LecutraArchivoDecifrar(StringList);
            var MessagesList  = new List <MessagesElements>();
            var cifrar        = false;
            var counter       = 0;

            foreach (List <string> list in BinaryList)
            {
                var Message  = new MessagesElements();
                var response = string.Empty;
                foreach (string binary in list)
                {
                    byte bytefinal = DecifradoSDES.CifrarODecifrar(binary, IP, EP, K1, P4, K2, ReverseIP, cifrar);
                    response += (char)bytefinal;
                }
                Message.Transmitter = ToRList[counter] == "1" ? Request.Cookies["User"]["username"] : ToUser;
                Message.Reciever    = ToRList[counter] == "1" ? ToUser : Request.Cookies["User"]["username"];
                Message.text        = response;
                MessagesList.Add(Message);
                counter++;
            }
            return(View(MessagesList));
        }
Example #21
0
        public void AddBranchOfficeProduct([FromForm] BranchProductRequest objBraPro)
        {
            BStarTree <BranchProductRequest> .StartTree("BranchProduct",
                                                        new StringToObject(BranchProductRequest.StringToObject),
                                                        new ObjectToString(BranchProductRequest.ObjectToString));

            SDES.GetKey();
            BStarTree <BranchProductRequest> .InsertTree(new BranchProductRequest { IdBranch = objBraPro.IdBranch, IdProduct = objBraPro.IdProduct, Inventory = objBraPro.Inventory });
        }
Example #22
0
        public void AddProducts([FromForm] IFormFile objcsv)
        {
            BStarTree <ProductRequest> .StartTree("Product",
                                                  new StringToObject(ProductRequest.StringToObject),
                                                  new ObjectToString(ProductRequest.ObjectToString));

            SDES.GetKey();
            ProductRequest.InsertCSV(objcsv.OpenReadStream());
        }
Example #23
0
        public void AddProduct([FromForm] ProductRequest objPro)
        {
            BStarTree <ProductRequest> .StartTree("Product",
                                                  new StringToObject(ProductRequest.StringToObject),
                                                  new ObjectToString(ProductRequest.ObjectToString));

            SDES.GetKey();
            BStarTree <ProductRequest> .InsertTree(new ProductRequest { ID = BStarTree <ProductRequest> .CreateId(), Name = objPro.Name, Price = objPro.Price });
        }
Example #24
0
        public void AddBranchOffice([FromForm] BranchOfficeRequest objBra)
        {
            BStarTree <BranchOfficeRequest> .StartTree("BranchOffice",
                                                       new StringToObject(BranchOfficeRequest.StringToObject),
                                                       new ObjectToString(BranchOfficeRequest.ObjectToString));

            SDES.GetKey();
            BStarTree <BranchOfficeRequest> .InsertTree(new BranchOfficeRequest { ID = BStarTree <BranchOfficeRequest> .CreateId(), Name = objBra.Name, Address = objBra.Address });
        }
Example #25
0
        public void Alter([FromForm] ProductData info)
        {
            SDES.obtainKey();
            ArbolB <ProductData> .IniciarArbol("Product", new StringToObject(ProductData.StringToObject), new ObjectToString(ProductData.ObjectToString));

            ArbolB <ProductData> .Modificar(info, new string[2] {
                info.Name, info.Price.ToString()
            }, new Modify(ProductData.Alter));
        }
Example #26
0
        public List <BranchOfficeRequest> OfficeShow(int id)
        {
            BStarTree <BranchOfficeRequest> .StartTree("BranchOffice",
                                                       new StringToObject(BranchOfficeRequest.StringToObject),
                                                       new ObjectToString(BranchOfficeRequest.ObjectToString));

            SDES.GetKey();
            return(BStarTree <BranchOfficeRequest> .Road(new BranchOfficeRequest { ID = id }, 1));
        }
        private string EncryptPassword(string password)
        {
            SDES sdes = new SDES();

            sdes.SetKeys(10);

            byte[] password_encrypted = sdes.EncryptText(ConvertToByte(password));
            return(ConvertToString(password_encrypted));
        }
Example #28
0
        public void Alter([FromForm] string Name, [FromForm] int id)
        {
            SDES.obtainKey();
            ArbolB <ProductData> .IniciarArbol("Product", new StringToObject(ProductData.StringToObject), new ObjectToString(ProductData.ObjectToString));

            ArbolB <ProductData> .Modificar(new ProductData { ID = id }, new string[2] {
                Name, null
            }, new Modify(ProductData.Alter));
        }
Example #29
0
        public ActionResult CrearUsuario(Usuario user)
        {
            bool repetido = false;

            List <Usuario> users = obtenerPersonas();

            foreach (var item in users)
            {
                if (user.username == item.username)
                {
                    repetido = true;
                    break;
                }
            }

            if (!repetido)
            {
                try
                {
                    //Cifrar Contrase;a

                    int cifradoValue = user.password.Length;

                    SDES   cipher            = new SDES();
                    string contrasenaCifrado = cipher.CifrarTexto(user.password, cifradoValue);

                    user.password = contrasenaCifrado;


                    using (var client = new HttpClient())
                    {
                        client.BaseAddress = new Uri("https://localhost:44316/api/users");

                        var postJob = client.PostAsJsonAsync <Usuario>("users", user);
                        postJob.Wait();

                        var postResult = postJob.Result;
                        if (postResult.IsSuccessStatusCode)
                        {
                            return(RedirectToAction("Login", "Login"));
                        }
                        else
                        {
                            return(Content("<script language='javascript' type='text/javascript'>alert('Error');</script>"));
                        }
                    }
                }
                catch (Exception e)
                {
                    return(RedirectToAction("Login", "Login"));
                }
            }
            else
            {
                return(Content("<script language='javascript' type='text/javascript'>alert('Prueba con otro nombre');</script>"));
            }
        }
Example #30
0
        public List <BranchProductRequest> AllBranchProductRequest()
        {
            BStarTree <BranchProductRequest> .StartTree("BranchProduct",
                                                        new StringToObject(BranchProductRequest.StringToObject),
                                                        new ObjectToString(BranchProductRequest.ObjectToString));

            SDES.GetKey();
            return(BStarTree <BranchProductRequest> .Road(null));
        }