본문 바로가기

c#19

AES256 java & c# encrypt, decrypt 처리 C#에서 생성한 AES256 암호화 값을 java에서 복호화하여 처리해야 하는데, 아래 3가지 내용중 하나라도 다를 경우 복호화 정상으로 되지 않는다. 이참에 서로 다른 language간 AES256 암/복호화 방법을 정리해 둔다. 주요 점검 포인트 1.암호화 키 (나의 경우엔 32byte 키를 사용한다.) 2.IV initialvector (16byte를 사용함) 3.CipherMode (CBC, ECB, OFB, CFB, CTS 등이 있으나 CBC로 함) 4.PaddingMode (C#의 경우엔 PKCS7, JAVA는 PKCS5) 암/복호화 과정은 아래와 같은 순서대로 진행되는데, 아래 블로그에 잘 정리되어 있다. 암호화 plain text > plain bytes > encrypt > encrypt.. 2021. 12. 6.
entity framework '소스 형식 DbSet<Table>에 구현된 쿼리 패턴을 찾을 수 없습니다.' 'Select'을(를) 찾을 수 없습니다. entity framework 기반으로 db의 특정 테이블을 조회하기 위해 아래 코드를 추가, 소스 형식 DbSet에 구현된 쿼리 패턴을 찾을 수 없습니다.' 'Select'을(를) 찾을 수 없습니다. #CS1936 오류가 발생한다. 해결법은 간단하다. Table을 DbSet으로 받았으므로 Linq가 필요하다. using System.Linq; 2021. 6. 10.
C# WinForm 동적으로 생성한 Control 접근하는 방법 C# WinForm에서 동적으로 Controls(Button, Label, ,,,)을 생성 후 작업 중 생성한 Control에 접근하는 방법을 메모해 둔다. 우선 Button을 동적으로 생성해 보자. Button btnTest = new Button(); btnTest.Name = "btnTest"; //Controls 에서 조회키가 되므로 Naming에 신경쓰자. btnTest.Text = "Test"; btnTest.Size = new System.Drawing.Size(100, 30); btnTest.Location = new System.Drawing.Point(50, 50); btnTest.Click += new System.EventHandler(btnTest_Click); this.Contr.. 2021. 5. 13.
byte UTF8Encoding시 OOM(OutOfMemory) 오류 발생 서버로부터 수신받은 byte array 데이터를 UTF8로 encoding시 간헐적으로 OOM(OutOfMemory)가 발생한다. 조회성 데이터는 상관없지만 3rd Party 업체로부터 수신받은 응답 데이터에서 저런 경우가 발생할 경우 무척 난감해지는 상황이 발생한다. 대부분 byte array를 string 으로 변환하는 코드는 아래코드가 대부분이다. string sBuffer = Encoding.Default.GetString(byteBuffer); 하지만 MemoryStream을 이용한 방법도 있으므로 사이즈가 큰 데이터는 MemoryStream을 이용한 방법을 사용하는것도 괜찮은듯 싶다. public static string GetStreamEncoding(byte[] inBytes) { usin.. 2021. 1. 29.