티스토리 뷰

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
댓글
최근에 올라온 글
최근에 달린 댓글
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
글 보관함