Hashing
🧭 Hashing
정의
Hashing은 입력값을 고정된 길이의 해시값으로 변환하는 과정이다.
해시값은 일반적으로 원본 데이터를 직접 복원할 수 없도록 설계되며,
주로 무결성 검증, 비밀번호 저장, 디지털 서명, 캐시 등에 사용된다.
🧩 Hash Function
정의
Hash Function은 임의 길이의 입력을 고정 길이 출력으로 바꾸는 함수다.
특징
- 같은 입력이면 같은 해시값이 나온다.
- 입력이 조금만 달라도 해시값이 크게 달라진다.
- 역으로 원본을 찾기 어렵다.
- 계산이 빨라야 실용적이다.
🧩 Hash Table
정의
Hash Table은 해시 함수를 이용해 값을 빠르게 저장하고 찾는 자료구조다.
- 빠른 검색과 삽입이 가능하다.
- 해시 충돌을 처리해야 한다.
🧩 Hash Collision
정의
Hash Collision은 서로 다른 입력이 같은 해시값을 가지는 현상이다.
충돌이 적을수록 안전하고 효율적인 해시 함수라고 볼 수 있다.
🧭 대표 해시 알고리즘
| 알고리즘 | 출력 길이 | 특징 |
|---|---|---|
| MD5 | 128bit | 빠르지만 충돌 취약으로 보안 용도에는 부적합 |
| SHA-1 | 160bit | 현재는 취약점이 알려져 사용을 권장하지 않음 |
| SHA-256 | 256bit | SHA-2 계열, 현재 널리 사용됨 |
| SHA-512 | 512bit | 더 긴 출력과 높은 보안성 |
| bcrypt | 가변 | 비밀번호 저장용에 적합, Salting 지원 |
🧭 Hashing 사용 예
- 비밀번호 저장
- 파일 무결성 검증
- 디지털 서명
- 블록체인 데이터 검증
- 캐시 키 생성
🖼️ Workflow

댓글남기기