해시 함수
해시 함수란
해시함수란 데이터를 고정 길이의 불규칙적인 숫자로 변환하는 함수이다. 이 때 출력되는 값을 해시 값이라 한다. 해시 값은 보통 16진수 형태로 출력되지만 내부에서는 2진수로 관리되고 있으며 컴퓨터 내부에서 수리 연산을 수행하고 있다.
특징
- 출력하는 값의 길이가 바뀌지 않는다. 예를 들어 SHA-1에서는 20 바이트로 고정된다. 이는 입력되는 데이터의 크기와 무관하게 유지된다.
- 입력이 동일하면 출력도 반드시 동일하다.
- 데이터의 유사도와는 무관하게 1 비트라도 다른 데이터라면 그 출력은 판이하게 다르다.
- 전혀 다른 데이터를 입력해도 동일한 해시 값이 출력될 확률이 존재한다. 이를 해시 값 충돌이라 한다.
- 해시 값으로 원 데이터를 역산하는 것은 불가능하다. 데이터의 흐름은 단 방향으로 이것은 암호와의 차이점이다.
- 해시 연산은 비교적 간단하다.
사용 예시
- 메시지 인증 코드
- 해시 테이블