본문 바로가기
알고리즘 & 자료구조

데이터 지문을 만드는 마법? 해시 알고리즘의 세계!

by logro 2025. 3. 28.
728x90

안녕하세요 logro 입니다 :)

오늘은 해시 알고리즘(Hash Algorithm) 이라는 개념을 함께 살펴볼 거예요.

이름은 좀 어려워 보일 수 있지만, 사실 일상에서도 비슷한 개념을 자주 쓰고 있답니다!


🧩 해시 알고리즘이란?

해시 알고리즘은 어떤 데이터를 **고정된 길이의 문자열(해시값)**로 바꿔주는 함수예요.
쉽게 말해, 긴 글을 요약해서 짧은 코드처럼 만들어주는 거예요.

예를 들어:

  • "hello" 라는 문자열을 해시 알고리즘에 넣으면 → 5d41402abc4b2a76b9719d911017c592 같은 해시값이 나와요.
  • 이 값은 마치 "hello"의 디지털 지문처럼 고유하답니다!

🎯 해시의 특징 3가지

  1. 고정된 길이: 어떤 길이의 입력이든 해시값은 항상 같은 길이!
  2. 한 방향성: 해시값으로 원래 데이터를 알아내는 건 거의 불가능해요.
  3. 충돌 최소화: 서로 다른 입력은 다른 해시값을 만들어야 해요. 물론 완전히 피할 수는 없지만, 아주 희박하게 만들어주는 게 중요하죠.

🛠️ 해시 알고리즘, 어디에 쓰일까요?

생각보다 우리 주변에 많이 쓰이고 있어요!

  1. 비밀번호 저장 🔐
    • 사용자 비밀번호를 직접 저장하는 건 위험해요!
    • 그래서 해시값으로 바꿔서 저장해요.
    • 예: qwer1234 → 81dc9bdb52d04dc20036dbd8313ed055
    • 실제로 로그인할 땐, 입력된 비밀번호를 다시 해시해서 비교하는 방식이에요.
  2. 파일 무결성 검사 📦
    • 파일을 다운로드했을 때, 해시값을 비교해서 파일이 손상되었는지 확인할 수 있어요.
    • 예: 영화 파일 해시값 = abc123
      내가 받은 파일 해시값 = abc123 → 정상!
  3. 블록체인 ⛓️
    • 블록의 고유값을 해시로 표현해서, 이전 블록과 연결돼 있다는 걸 보장해줘요.
    • 해시값이 조금만 바뀌어도 전체 블록이 달라지기 때문에 변조가 어렵게 만들 수 있어요.
  4. 데이터 검색 및 정리 📚
    • 해시 테이블(hash table) 같은 자료구조에서도 사용돼요.
    • 빠르게 데이터를 찾기 위한 키(key)로 활용되죠.

📌 비유로 이해해보자!

해시 알고리즘을 도서관의 책 고유 번호라고 생각해보세요.

  • 책 제목이나 내용이 아무리 길어도,
  • 고유한 번호(해시값)를 붙여서 정리하면
  • 빠르게 찾고, 중복 없이 관리할 수 있겠죠? 😊

🏁 마무리

해시 알고리즘은 데이터의 요약, 보안, 검색 등 정말 많은 곳에 쓰여요.
오늘은 비밀번호 저장, 파일 무결성, 블록체인 같은 예시로 다뤄봤지만,
이 개념은 앞으로 개발을 하면서 자주 만나게 될 거예요!

작지만 강력한 해시 알고리즘! 오늘부터 내 지식 해시값에도 저장 완료~ 😎

728x90