Exemplo n.º 1
0
        public void RasEncryptTest()
        {
            RSAEncrypt Rsa = new RSAEncrypt();

            Rsa.GenerateKeys("d://pems");
            string s     = "王进锋";
            string s1    = "jfwang123";
            var    spwd  = Rsa.Encrypt(s, "d://pems/RSA.Pub");
            var    s1pwd = Rsa.Encrypt(s1, "d://pems/RSA.Pub");

            Assert.Equal(Rsa.Decrypt(spwd, "d://pems/RSA.Private"), s);
            Assert.Equal(Rsa.Decrypt(s1pwd, "d://pems/RSA.Private"), s1);
        }
Exemplo n.º 2
0
        public void Encrypt(string val)
        {
            //RSACryptoServiceProvider oRSA = new RSACryptoServiceProvider();
            //string privatekey = oRSA.ToXmlString(true);//私钥
            //string publickey = oRSA.ToXmlString(false);//公钥
            ////这两个密钥需要保存下来
            //byte[] messagebytes = Encoding.UTF8.GetBytes(val); //需要加密的数据

            ////公钥加密
            //RSACryptoServiceProvider oRSA1 = new RSACryptoServiceProvider();
            //oRSA1.FromXmlString(publickey); //加密要用到公钥所以导入公钥
            //byte[] AOutput = oRSA1.Encrypt(messagebytes, false); //AOutput 加密以后的数据
            var str = RSAEncrypt.Encrypt(val);

            Console.WriteLine(str);
            str = RSAEncrypt.Decrypt(val);
            Console.WriteLine(str);
        }
Exemplo n.º 3
0
        public async Task <IActionResult> OnGetAsync(int id)
        {
            TripleDESCryptoServiceProvider TDES = new TripleDESCryptoServiceProvider();
            RSACryptoServiceProvider       RSA  = new RSACryptoServiceProvider();

            OnlineUsersHtml = "";

            var ChatUsers = _dbContext.ChatUsers
                            .Include(s => s.User)
                            .Include(r => r.Chat);

            foreach (ChatUser user in ChatUsers)
            {
                if (user.UserId == _userManager.GetUserId(User) && user.ChatRoomId == id)
                {
                    ChatUser = user;
                    break;
                }
            }

            CurrentRoom = _dbContext.ChatRooms.Find(id);

            if (CurrentRoom == null)
            {
                RedirectToPage("./Index");
            }

            if (ChatUser == null)
            {
                TDES.GenerateKey();

                ChatUser = new ChatUser()
                {
                    User         = await _userManager.GetUserAsync(User),
                    Chat         = CurrentRoom,
                    IsAdmin      = false,
                    DesKey       = TDES.Key,
                    CommandInter = (int)ChatUser.Command.AddChatUser
                };
                _dbContext.ChatUsers.Add(ChatUser);
                await _dbContext.SaveChangesAsync();
            }

            if (!Startup.clients.ContainsKey(ChatUser.ChatUserId))
            {
                Client = new TcpClient();
                await Client.ConnectAsync(IPAddress.Parse("127.0.0.1"), 10140);

                Startup.clients.Add(ChatUser.ChatUserId, Client);
                Startup.userMsgBox.Add(ChatUser.ChatUserId, MsgHtml);

                Stream = Startup.clients[ChatUser.ChatUserId].GetStream();
                Writer = new StreamWriter(Stream)
                {
                    AutoFlush = true
                };
                Reader = new StreamReader(Stream);

                ChatUser.CommandInter = (int)ChatUser.Command.getRSAKey;
                Input = JsonConvert.SerializeObject(ChatUser);
                Writer.WriteLine(Input);
                while (true)
                {
                    if (Client.Available > 0)
                    {
                        string data = Reader.ReadLine();
                        ChatUser = JsonConvert.DeserializeObject <ChatUser>(data);
                        break;
                    }
                }

                ChatUser.CommandInter = (int)ChatUser.Command.AddChatUser;
                ChatUser.DesKey       = RSAEncrypt.Encrypt(ChatUser.DesKey, 2048, ChatUser.RsaKey);
                Input = JsonConvert.SerializeObject(ChatUser);
                Writer.WriteLine(Input);
            }
            MsgHtml = Startup.userMsgBox[ChatUser.ChatUserId];

            var chatUsers = _dbContext.ChatUsers
                            .Include(s => s.User)
                            .Include(r => r.Chat)
                            .Where(u => u.ChatRoomId == CurrentRoom.ChatRoomId);

            foreach (ChatUser user in chatUsers)
            {
                OnlineUsersHtml += "<div class='user'>" +
                                   "<div class='avatar'>" +
                                   "<img src ='" + user.User.Avatar + "' alt='User name'>" +
                                   "<div class='status " + user.User.Status + "'></div>" +
                                   "</div>" +
                                   "<div class='name'>" + user.User.UserName + "</div>" +
                                   "<div class='mood'>" + user.User.Mood + "</div>" +
                                   "</div>";
            }

            Startup.ReceiveEvent = new Task(() => ReceiveData(ChatUser));
            Startup.ReceiveEvent.Start();

            return(Page());
        }