🧭 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

연결문서

댓글남기기