해시(Hash)란? MD5 SHA-256 해시 생성기 사용법 가이드 2026
해시 함수의 개념, MD5 vs SHA-1 vs SHA-256 vs SHA-512 비교, 파일 무결성 검증, 비밀번호 저장, 디지털 서명 등 실무 활용법까지.
비밀번호가 서버에 그대로 저장되면 큰일 나겠죠? 그래서 해시를 쓰는 거예요. 'password123'을 SHA-256 돌리면 64자리 알 수 없는 문자열이 되는데, 이걸 다시 원래 비밀번호로 되돌릴 수 없어요. 해시 함수가 뭔지, MD5와 SHA-256이 뭐가 다른지, 5분이면 감 잡을 수 있어요.
해시 함수란?
해시 함수는 어떤 크기의 입력 데이터든 고정된 길이의 출력(해시값, 다이제스트, 체크섬, 핑거프린트)으로 변환하는 수학적 알고리즘입니다. 핵심 특성: 결정적(같은 입력 = 같은 해시), 단방향(해시에서 입력을 복원 불가), 눈사태 효과(작은 입력 변화 = 완전히 다른 해시), 충돌 저항(같은 해시를 가진 두 입력을 찾는 것이 극히 어려움).
- 결정적: 'hello'는 언제 어디서 계산하든 항상 같은 해시를 생성
- 단방향: 해시값으로부터 원본 입력을 복원할 수 없음
- 눈사태 효과: 단 한 글자만 바꿔도 해시 출력이 완전히 달라짐
- 고정 길이 출력: MD5는 항상 128비트, SHA-256은 항상 256비트
- 충돌 저항: 같은 해시를 가진 두 개의 서로 다른 입력을 찾는 것이 계산적으로 불가능
지금 이 도구를 사용해 보세요:
해시 생성기 사용하기 →해시 알고리즘 비교
모든 해시 알고리즘이 같은 것은 아닙니다. 가장 흔한 4가지 알고리즘의 비교입니다:
MD5 (Message Digest 5)
- 출력: 128비트 (16진수 32자)
- 속도: 매우 빠름
- 보안: 취약 — 2004년부터 충돌 공격이 입증됨
- 용도: 비보안 체크섬, 캐시 키, 중복 제거
- 사용 금지: 비밀번호, 디지털 서명, 인증서
SHA-1 (Secure Hash Algorithm 1)
- 출력: 160비트 (16진수 40자)
- 속도: 빠름
- 보안: 폐기 권고 — 2017년 Google이 실용적 충돌(SHAttered)을 입증
- 용도: 레거시 시스템, Git 커밋 해시 (여전히 사용 중이나 전환 중)
- 사용 금지: 충돌 저항이 필요한 새로운 애플리케이션
SHA-256 (SHA-2 Family)
- 출력: 256비트 (16진수 64자)
- 속도: 보통
- 보안: 강력 — 알려진 실용적 공격 없음
- 용도: 디지털 서명, SSL/TLS 인증서, 비트코인 채굴, 파일 무결성
- 권장: 2026년 대부분의 애플리케이션에 기본 선택
SHA-512 (SHA-2 Family)
- 출력: 512비트 (16진수 128자)
- 속도: 32비트 시스템에서 SHA-256보다 약간 느림, 64비트에서는 비슷
- 보안: 강력 — SHA-256보다 큰 보안 마진
- 용도: 고보안 애플리케이션, 미래 보안이 중요할 때
- 참고: 64비트 플랫폼에서는 네이티브 64비트 연산 덕분에 SHA-256보다 실제로 빠름
해시는 어디에 쓰이나?
- 비밀번호 저장: 웹사이트는 평문이 아닌 해시된 비밀번호(솔트 포함)를 저장. DB가 유출되어도 비밀번호가 보호됨.
- 파일 무결성: 파일을 다운로드하고 해시를 제공된 체크섬과 비교하여 변조 여부 확인.
- 디지털 서명: 문서를 먼저 해싱한 후 개인키로 해시를 암호화하여 서명.
- 블록체인: 각 블록에 이전 블록의 해시가 포함되어 변경 불가능한 체인을 형성.
- 데이터 중복 제거: 전체 파일을 비교하지 않고 해시로 중복 파일을 식별.
- Git 버전 관리: Git은 SHA-1 해시로 모든 커밋, 트리, 블롭 객체를 식별.
MD5가 안전하지 않은 이유
2004년 중국 연구자들이 MD5 충돌을 초 단위로 찾을 수 있음을 입증했습니다. 2008년에는 MD5 충돌을 이용해 위조 CA 인증서가 생성되었고, 2012년에는 Flame 악성코드가 MD5 충돌로 Microsoft 코드 서명 인증서를 위조했습니다. 이러한 취약점에도 불구하고 MD5는 속도와 단순함 때문에 비보안 용도에서 여전히 널리 사용됩니다.
지금 이 도구를 사용해 보세요:
해시 생성하기 →자주 묻는 질문
다른 파일이 같은 해시를 가질 수 있나요?
이론적으로 가능합니다(충돌이라 합니다). 하지만 SHA-256의 경우 확률이 천문학적으로 낮아 — 약 2^128분의 1 — 실용적으로 두 파일의 SHA-256 해시가 같으면 동일한 파일입니다.
해싱과 암호화는 같은 것인가요?
아닙니다. 해싱은 단방향이라 원본 데이터를 복원할 수 없습니다. 암호화는 양방향이라 올바른 키로 원본 데이터를 복호화할 수 있습니다. 근본적으로 다른 목적을 가집니다.
SHA-256과 SHA-512 중 무엇을 써야 하나요?
대부분의 애플리케이션에는 SHA-256이면 충분하고 널리 지원됩니다. 더 큰 보안 마진이 필요하거나 64비트 시스템에서 실행할 때는 SHA-512를 사용하세요.
비밀번호 해싱에서 솔팅이란?
솔트는 해싱 전 비밀번호에 추가하는 랜덤 데이터입니다. 동일한 비밀번호도 다른 해시를 생성하여 레인보우 테이블 공격을 방지합니다. 현대 비밀번호 해싱(bcrypt, Argon2)은 자동으로 솔팅을 포함합니다.
해시 계산은 얼마나 걸리나요?
텍스트 입력의 경우 거의 즉각적(마이크로초)입니다. 대용량 파일은 크기와 알고리즘에 따라 다릅니다 — SHA-256은 현대 하드웨어에서 보통 초당 500MB를 처리합니다.
▶이 글에서 다룬 도구 바로 사용하기
민재
개발자 겸 테크 라이터. 개발 도구와 파일 변환 기술을 깊이 있게 다룹니다.
이 글이 도움이 되셨나요? 새 가이드 알림 받기
스팸 없이, 새 소식만 보내드립니다. 언제든 취소 가능. · 구독 시 개인정보처리방침에 동의합니다.