해시(Hash) 함수 가이드 — SHA-256, MD5 차이와 활용법
작성
소프트웨어 다운로드 페이지에서 "SHA-256 체크섬"을 본 적이 있을 겁니다. 해시 함수가 무엇이고 어디에 쓰이는지 정리합니다.
해시 함수란
임의 길이의 데이터를 고정 길이의 해시값(다이제스트)으로 변환하는 단방향 함수입니다. 입력이 조금만 달라도 결과가 완전히 바뀝니다.
주요 해시 알고리즘 비교
| 알고리즘 | 출력 길이 | 보안성 |
|---|---|---|
| MD5 | 128비트 (32자) | 취약 — 보안 용도 비권장 |
| SHA-1 | 160비트 (40자) | 취약 — 충돌 발견됨 |
| SHA-256 | 256비트 (64자) | 안전 — 현재 표준 |
| SHA-512 | 512비트 (128자) | 안전 — 높은 보안 요구 시 |
활용 사례
- 비밀번호 저장: 원본 대신 해시값을 저장하여 유출 시 피해 최소화
- 파일 무결성 검증: 다운로드 파일의 체크섬 비교로 변조 여부 확인
- 디지털 서명: 문서의 해시값에 서명하여 위변조 방지
- 블록체인: 거래 데이터를 해시로 연결하여 무결성 보장
해시 생성기로 바로 확인하기
텍스트를 입력하면 SHA-256, SHA-512, MD5 등 주요 알고리즘의 해시값을 한번에 생성합니다.
자주 묻는 질문
해시와 암호화의 차이는?
암호화는 키를 사용해 원본을 복원(복호화)할 수 있지만, 해시는 단방향이라 해시값에서 원본을 복원할 수 없습니다. 비밀번호 저장에는 해시가 적합합니다.
MD5는 왜 안전하지 않나요?
MD5는 충돌(서로 다른 입력이 같은 해시값을 생성)이 발견되어 보안 용도로는 권장하지 않습니다. 파일 무결성 검증 용도로는 여전히 쓰이지만, 보안에는 SHA-256 이상을 사용해야 합니다.
같은 입력이면 항상 같은 해시값이 나오나요?
네. 해시 함수의 핵심 특성입니다. 같은 알고리즘에 같은 입력을 넣으면 항상 동일한 해시값이 나옵니다. 한 글자만 바뀌어도 해시값은 완전히 달라집니다.