
해시(Hash)는 임의의 크기를 가진 데이터를 고정된 크기의 값으로 매핑하는 함수를 가리키는 용어이다. 해시 함수는 임의의 입력 값을 받아서 고정된 크기의 해시 값으로 변환한다. 해시 함수를 통해 생성된 해시 값은 원래 데이터를 나타내는 것이 아니라 데이터를 식별하는 데 사용되는 고유한 값이다.
고유한 값: 서로 다른 입력에 대해 같은 해시 값이 나오는 충돌(collison)을 최소화하는 것이 목표이다. 그러나 완전히 충돌을 피하는 것은 어려울 수 있다.
고정된 크기: 해시 함수는 일정한 크기의 출력 값을 생성한다. 이 크기는 해시 함수마다 다를 수 있다.
속도: 해시 함수는 빠르게 계산되어야 한다. 큰 데이터 세트에서도 효율적으로 작동해야 한다.
재사용 불가능: 해시 값으로 원래 데이터를 복원하는 것은 거의 불가능해야 한다. 해시 함수는 일반적으로 단방향 함수로, 데이터를 보호하는 데 사용될 수 있다.
해시 함수는 다양한 분야에서 사용된다. 일반적인 용도로는 데이터 검색 및 저장, 데이터 무결성 확인, 비밀번호 보안, 암호화 등이 있다. 해시 값은 상대적으로 짧기 때문에 큰 데이터를 간결하게 표현하는 데 유용하며, 빠른 검색 및 확인을 가능하게 한다.