해시(Hash)

Hyokyeong Jo·2023년 10월 14일
0

해시(Hash)란?

임의의 크기의 데이터를 고정된 크기의 데이터로 매핑하는 함수 또는 알고리즘
해시 함수(hash function)라고도 부르며,
해시 함수는 입력 데이터를 해시 값(또는 해시 코드)으로 변환힌다.

해시 함수의 특징

1. 고정된 크기의 출력

1자리의 숫자든, 10자리의 문자든 항상 고정된 크기의 출력을 생성한다.
ex) MD5: 128bit의 해시값 생성
ex) SHA-256: 256bit의 해시값 생성

2. 동일한 입력에 대해 항상 동일한 출력

동일한 입력 데이터에 대해서는 항상 동일한 출력.

3. 약간의 입력 변경은 크게 다른 해시 값을 생성

이 특징을 사용해서 해시 충돌을 줄인다.

4. 역방향 변환 불가능

1을 해시함수를 통해 0x026xde3849x을 출력받아도,
0x026xde3849x를 해시함수를 통해 다시 1로 받을 수는 없다.


주 사용 용도

1. 데이터 무결성 검사

약간의 변경도 다른 해시값을 생성하기 때문에 데이터가 변경되지 않았다는 데이터 무결성을 확인하고 검증하는데 사용된다.

2. 데이터 검색 및 색인화

데이터 검색과 색인화를 빠르게 하기 위해 사용.
해시 테이블과 해시 맵은 이러한 원리에 기반하여 작동한다.

3. 암호화

암호화 알고리즘에서 사용되고 있다. 패스워드 해싱, 메시지 더이지 인증 코드(MAC), 디지털 서명 등 다양한 보안 프로토콜에 적용되고 있다.

profile
Cogito, ergo sum

0개의 댓글