알고리즘의 한 종류로서 임의의 길이를 갖는 데이터를 입력 받아서 항상 고정된 길이의 해시값으로 변환하여 출력해주는 함수를 말한다.
-Wikipedia
1. 어떤 입력 값에도 항상 고정된 길이의 해시값을 출력한다.
2. 눈사태 효과: 입력 값이 일부만 변경되어도 전혀 다른 값을 출력한다.
3. 출력된 결과 값을 통해서 입력값을 알아내기에 불가능하다.
아래 예시는 SHA1를 통해 비슷한 문자열을 암호화한 결과값이다.
"주영재" -> DDB0ED48A84B6C328E50B3BFB3D15364C669C3A6
"주영째" -> 1C2FC56A4172A9B6D5C3C20309A46C01896D3194
"주형재" -> 1DA926EEF1EF8533F57A45124871F8550A278EA9
해시함수는 그리 복잡하지 않은 알고리즘으로 구현되기 때문에, 상대적으로 CPU , 메모리 같은 시스템 자원을 덜 소모한다.
뿐만 아니라, 다양한 목적에 맞게 설계된 해시 함수가 존재하기 때문에 다양한 분야에서 활용하기 유용하다.
📚 Reference
위키백과 해시함수 (위키백과)
해시함수에 대한 개념 정리하기 ( velog | Bityoungjae )