📌 Hashing이란?

info

Hashing은 해시 함수를 통해 입력값을 고정된 길이의 해시값으로 변환하는 과정이다.
이 값은 일반적으로 데이터의 식별자, 무결성 검사, 암호 저장 등에 활용된다.


✅ Hash Function이란?

임의의 길이를 갖는 입력 데이터를 고정된 길이의 값으로 변환하는 단방향 함수
암호학적 해시 함수는 변경이 불가능한 특징을 가지며 복호화가 불가능하다.

✳️ 특징

  • 입력값이 동일하면 항상 동일한 해시값 반환
  • 해시값만으로는 원래 입력값 복원이 불가능
  • 아주 작은 입력 변경에도 완전히 다른 해시값 생성
  • 고속 연산 가능

✅ Hash Table이란?

해시 함수를 통해 얻은 키 값을 배열의 인덱스로 사용하는 자료 구조

  • 빠른 검색과 삽입/삭제가 가능
  • 내부적으로는 해시 충돌(같은 인덱스)에 대한 처리 로직이 필요함

✅ Hash Collision이란?

서로 다른 입력값이 같은 해시값으로 매핑되는 현상
이를 줄이기 위한 충돌 방지 알고리즘이 필요함


✅ 해시 알고리즘 종류

알고리즘 출력 길이 특징
MD5 128bit (16byte) 빠르지만 충돌 발생 가능성 높아 보안용으로 부적절
SHA-1 160bit (20byte) 과거 사용, 현재는 취약점 존재
SHA-256 256bit (32byte) SHA-2 계열, 현재 널리 사용됨
SHA-512 512bit (64byte) 보안성 높지만 속도 느림
bcrypt 가변적 암호 저장용, Salting 지원

✅ Hashing 사용 사례

  • 비밀번호 저장 (복호화 대신 해시값 비교)
  • 파일 무결성 검사 (변조 여부 탐지)
  • 디지털 서명, 인증서 검증
  • 블록체인 트랜잭션 처리
  • 데이터베이스 인덱싱

✅ 시각적 WorkFlow


연결문서

댓글남기기