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); }
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); }
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()); }