티스토리 뷰
728x90
배열을 인수로 전달받아 기준이 되는 배열과 동일한지 검사하는 방법은 함수를 통해서 처리하는 방법과 시스템에서 제공하는 메소드를 통해서 수행하는 방법이 있습니다.
- 두 배열의 길이가 동일한지 비교
- 배열의 길이 만큼 각 원소가 동일한지 비교
위의 방법을 수행하는 간단한 함수를 만들어도 되지만 타입이 달라지는 것에 대응하기 어렵고 굳이 시스템에서 제공하는 메소드가 있는데 별도의 작업을 할 필요는 없지요.
using System.Security.Cryptography; byte[] conf_md5 = null; bool md5check(byte[] confmd5) { using (MD5 md5Hash = MD5.Create()) { conf_md5 = md5Hash.ComputeHash(Encoding.UTF8.GetBytes(basestring)); } return conf_md5.SequenceEqual(confmd5); }
결론적으로 두 배열을 비교하는 것은 배열의 SequenceEqual() 메소드를 사용하면 됩니다. 동일하면 true 그렇지 않으면 false를 리턴합니다.
위의 예제 코드는 두 원격의 컴퓨터에 존재하는 상당히 긴 파일이나 문자열을 MD5 해시만으로 동일 여부를 판단하기 위한 함수로 C# 닷넷을 통해서 MD5를 생성하면 16바이트의 해시를 생성합니다. 길이가 아무리 길어도 양쪽의 컴퓨터에서 해시만으로 동일 여부를 판단하기 때문에 효율적인 검사를 수행할 수 있습니다.
728x90
'프로그래밍' 카테고리의 다른 글
C# 배열 초기화 방법 (0) | 2018.12.12 |
---|---|
C#으로 데이터베이스 연결 스트링에서 비밀번호 숨기기, C#에서 정규식 사용하기 (0) | 2018.12.05 |
C#에서 한글 클래스, 한글 함수, 한글 변수 사용하기 (0) | 2018.07.27 |
C# 테이블 레이아웃을 이용한 입력 양식 만들기 (0) | 2018.07.27 |
외부 배포를 위한 설치 프로젝트 만들기 (0) | 2018.07.04 |
댓글