해시란
데이터를 입력받으면 완전히 다른 모습의 데이터로 바꾸어 놓는 작업
•
해시 테이블 : 해시 테이블은 데이터의 해시 값을 테이블 내의 주소로 이용하는 궁극의 탐색 알고리즘
•
암호화 : 해시는 입력받은 데이터를 완전히 새로운 모습의 데이터로 변경시킨다. 해시를 통해 데이터가 변하는 특성 때문에 암호화 영역에서 사용. SHA (Secure Hash Algorithm)
•
데이터 축양 : 해시는 길이가 서로 다른 입력 데이터에 대해 일정한 길이의 출력을 만들 수 있다. 이 특성을 이용해 해시를 짧은 길이로 축양한다.
해시 테이블
크기가 매우 큰 배열에서 인덱스가 x인 요소에 접근한다고 하면 인덱싱 연산을 통해 단 한번에 접근 할 수 있다.
하지만 값이 k 인 배열의 요소에 접근 하려면 순차 탐색을 하거나 배열을 정렬 한 뒤 이진 탐색을 해야한다.
데이터를 해시화 하여 테이블 내의 주소로 변경한다면
// 찾고자 하는 값
123817
// 해시로 변환하여 해시 테이블의 인덱스를 만듬
Hash(123817) -> 3819
// 해시 테이블의 해시 값에 값을 저장
Table[3819] = 123817
// 다음과 같이 배열의 특성을 이용하여 빠르게 값에 재 접근 가능
Table[Hash(123817)]
C