CRC32, MD4, MD5, SHA1, SHA-256, SHA-384, SHA-512, RIPEMD-128, RIPEMD-160, HAVAL 256, TIGER 192 등.. 같은 형식의 종류가 여러가지 있는데..
이것들을 통칭하여 해시 함수(hash function) 또는 해시 알고리즘(hash algorithm)이라고 한다...("해쉬"라고도 하지만.. 위키백과를 기준으로 하여 나역시 "해시"라고 적겠다.)

해시 함수(hash function) 또는 해시 알고리즘(hash algorithm)은 임의의 데이터로부터 일종의 짧은 "전자 지문"을 만들어 내는 방법이다. 해시 함수는 데이터를 자르고 치환하거나 위치를 바꾸는 등의 방법을 사용해 결과를 만들어 내며, 이 결과를 흔히 해시 값(hash value)이라 한다. 해시 함수는 결정론적으로 작동해야 하며, 따라서 두 해시 값이 다르다면 그 해쉬값에 대한 원래 데이터도 달라야 한다. (역은 성립하지 않는다) 해쉬 함수의 질은 기대되는 입력 영역에서 얼마나 적은 해시 충돌(서로 다른 두 데이터의 해시 값이 같은 경우)을 일으키느냐로 결정되는데, 충돌이 많이 날수록 서로 다른 데이터를 구별하기 어려워지고 데이터를 검색하는 비용을 늘리기 때문이다.

* 인용 출처: http://ko.wikipedia.org/wiki/%ED%95%B4%EC%8B%9C_%ED%95%A8%EC%88%98

비슷한 용어로 체크섬(checksum)이라는 용어가 있다. ("체크썸"이라고도 하지만.. 역시 "체크섬"이라고 읽는 것이 맞겠다.)
체크섬(checksum)은 중복 검사의 한 형태로, 오류 정정을 통해, 공간(전자 통신)이나 시간(기억 장치) 속에서 송신된 자료의 무결성을 보호하는 단순한 방법이다.

기본적인 메시지 구성 요소(보통 비트) 를 추가하여 결과값을 저장함으로써 동작한다. 나중에 누구나 데이터에 같은 작업을 수행할 수 있고, 무결성 검사에 대한 결과를 비교할 수 있으며, (체크섬이 맞아 떨어지는지 확인해 봄으로써) 메시지가 손상되지 않았다고 결론을 내릴 수도 있다.

* 인용 출처: http://ko.wikipedia.org/wiki/%EC%B2%B4%ED%81%AC%EC%8D%B8

쉽게 말해서.. 이러한 해시 값을 일반인들이 일상에서 접하게 되는 경우는..
입수한 파일이 원래의 초기 배포자가 배포했을 때와 동일한 파일인지를 확인하는 용도로써 쓸 수 있다.

즉, 중간에 다른 이가 해당 파일에 악성코드나 바이러스를 내포하여 재배포하는 것이 아닌지.. 또는 다운로드 받는 과정에서 오류가 생김으로 인해 파일에 오류가 생겼는지.. 또는 저장매체에 문제가 생겨 파일에 문제가 생기지는 않았는지.. 등과 같은 의구심을 해결할 수 있는 방법이 된다...

※ 하지만.. 처음부터 원본 파일에 이미 문제가 있거나, 악성코드나 바이러스가 감염된 상태일 수도 있으므로, 해시 값이 동일하다고 해서 해당 파일이 안전한 파일이라는 뜻은 전혀!! 아니다...



내 블로그의 각종 다운로드 파일이 있는 페이지에서도 가끔 발견할 수 있는데..
나의 경우.. 원 배포 페이지에 해시 값이 적혀있는 경우.. 방문자분들에게 조금이라도 도움이 되시라고.. 그 값을 그대로 적어 놓는다...



관련 프로그램
이런 비교 작업을 위한 체크섬 확인(Checksum Verifier) 프로그램으로 이미 기존에 몇가지 프로그램을 소개한 바 있지만..
이중 내가 추천하는 프로그램은 Marxio File Checksum Verifier이다.
Freeware인 것은 기본이고.. Windows 7(32/64bit)까지도 공식 지원하고..
해당 파일에서 우측 클릭을 통해 나타나는 context 메뉴를 통해 쉽게 해당 체크섬 확인 프로그램을 연동하여 실행할 수 있고..
CRC32, MD4, MD5, SHA1, SHA-256, SHA-384, SHA-512, RIPEMD-128, RIPEMD-160, HAVAL 256, TIGER 192 등의 다양한 해시 함수를 지원하기 때문이다...


 
Google+