본문 바로가기

분류 전체보기300

07. 서버 작업 근황2 암호화 복호화에 Aes를 추가했다. 그 외 패킷을 보낼 때, 어떤 식으로 패킷에 대해 보안을 강화할지 결정해서 구현했다. 서버에 패킷이 들어오면 이제 알아서 정해준 클래스를 호출해줄 것이다. ServerManager가 ProcessManager를 호출하고 ProcessManager는 미리 PacketList를 정의해놔서 원하는 작업을 할 것이다. 물론 다른 언어와도 Json 형식만 맞춰준다면 호환 가능할 것이다. 예전에는 Send Packet도 인터페이스로 구현했지만 그렇게 할 필요가 있을까? 해서 미리 상속을 해봤다. 이건 어떤 장단점이 있을지는.. 음 PacketId와 ConnectionType은 열거형에 데이터를 따른다. C#의 열거형이랑 다른 언어의 열거형이 다를 수 있기에 int로 구현해놨다. .. 2019. 10. 2.
23# RSACryptoServiceProvider public static string RSAEncrypt(string getValue, string pubKey) { RSACryptoServiceProvider rsa = new RSACryptoServiceProvider(); rsa.FromXmlString(pubKey); //암호화할 문자열을 UFT8인코딩 byte[] inbuf = (new UTF8Encoding()).GetBytes(getValue); //암호화 byte[] encbuf = rsa.Encrypt(inbuf, false); //암호화된 문자열 Base64인코딩 return System.Convert.ToBase64String(encbuf); } Visual 2017 4.5 버전으로 확인할 때와 다르게 Visual 2019 4.72.. 2019. 10. 1.
06. 클라이언트 작업 근황1 클라이언트와 서버 접속에 관련하여 클라이언트를 먼저 완성하고 추후에 서버를 작업했음에도 서버에 관련된 글을 먼저 작성했다. 뭐.. 클라이언트는 아직 더 고민해야 하는 내용이 많다. 클라이언트 기본 라이브러리에 설정 파일 및 서버와 통신하는 라이브러리를 만들었다. 그리고 서버와 공통 라이브러리도 참조해줬고 -..- 아 가장 큰 문제는 난 mvvm 패턴을 잘 모른다. C# 버전 언제적이었는지.. INotifyPropertyChanged 처음 나왔을 때 보긴 했는데 이 방법을 채택했더라. 아 이거 코드 MS에 있는 코드다. 양형이 기본 형식이라고 해서 올려놨는데.. -..- 왠만한 한국에 있는 사이트보다 어렵다. 원본은 잘 만들어놨다.. 가져다 쓰는 내가 허접한거겠지. ㅠ.ㅠ 아 WPF에서 어떤 형식으로 구성.. 2019. 10. 1.
05. 서버 작업 근황1 Watson 라이브러리를 사용하여 서버 라이브러리를 만들었다. 물론 같은 프로젝트에 구성하면 종속성이 너무 강해져서 대리자를 통해 서버 프로젝트에 ServerManager로 모든 행동을 한다. 유저들이 접속하고 아무 행동을 하지 않을 때, 강제적으로 시간을 측정해 재접속을 유도하도록 구성하기로 했다. 기초적으로 돌아갈 코드.. 어떻게 변경될지는 아직 더 생각해야 한다. -..- 클라이언트와 함께 쓰는 라이브러리도 만들었다. 간략하게 패킷이랑.. 압축.. 암호화.. 이제 Json을 보낼때 어떤 형식으로 할지 고민을 더 해야 한다. Class -> Json -> 압축 -> 암호화 -> Send가 될지? 아니면 순서가 바뀔지? 정해진 건 없다. 아마 보안에 더 신경을 쓴다면 암호화에 몇 가지 더 기법이 들어가.. 2019. 10. 1.