본문 바로가기
컴퓨터공학

해시 (Hash)란 무엇인가?

by 무에서 2017. 9. 2.
반응형

Hash는 감자와 고기를 다진 요리라는 뜻이고 Hashtag은 '#'의 이름이다.


해시 함수 (Hash function)는 어떠한 데이터를 고정된 길이의 데이터로 변환하는 함수이다. 해수 함수에 입력되는 데이터는 어떤 크기라도 상관없지만, 해시 함수에서 출력 되는 값은 고정된 길이의 데이터이다. 


입력 데이터의 길이는 크고 출력 데이터의 길이가 작으면, 다른 입력 데이터에 동일한 출력 데이터가 나올 수 있는데, 이것을 충돌(Collision)이라고 한다.


해시 함수는 MD5, SHA 등 다양한 종류가 있다.


해시 함수의 사용 분야

해시 함수는 다양한 용도로 사용 가능하며 검색, 캐시, 변조 탐지, 에러 검출, 보안 등에 사용될 수 있다.


특정 데이터의 해시를 만들어 저장해 두면, 그 특정 데이터가 변경/변조 되었을 때 해시를 비교하여 변경/변조를 검출할 수 있다.


예들 들면, 파일들을 저장할 때 파일들에 대한 해시를 미리 만들어 둔다. 그리고, 이후에 저장된 파일들 중에서 동일한 파일을 찾을 때 크기가 큰 파일을 비교할 필요 없이 해시만 비교해보면 동일한 파일을 찾을 수 있다. 해시는 파일 데이터에 대한 고유 ID를 부여하는 것과 같다.


에러 검출에 사용되는 Checksum이나 CRC도 해시로 볼 수 있다.


반응형

댓글