해시 생성기
🔐 인코딩입력 텍스트에 대해 MD5, SHA-1, SHA-256, SHA-512 등 여러 알고리즘의 해시값을 산출합니다.
• MD5: 128비트 해시 (보안 용도로는 권장하지 않음)
• SHA-256: 256비트 해시 (가장 널리 사용됨)
• SHA-512: 512비트 해시 (더 높은 보안성)
🔒 해시 생성기란?
해시는 임의 길이 입력을 고정 길이 지문으로 압축하는 단방향 함수입니다. 1바이트가 바뀌어도 결과 전체가 완전히 다른 값으로 튀어 오르는 "눈사태 효과(Avalanche Effect)"가 핵심 특성입니다. 이 도구는 MD5, SHA-1, SHA-256, SHA-384, SHA-512 다섯 가지 해시를 동시에 뽑아 줍니다. SHA-2 계열은 브라우저의 Web Crypto API(crypto.subtle.digest)를 그대로 사용하므로 로컬에서 즉시 계산되며 네트워크 전송이 없습니다.
📊 해시 알고리즘 비교
| 알고리즘 | 출력 길이 | 보안성 | 용도 |
|---|---|---|---|
| MD5 | 128bit (32자) | 취약 | 체크섬 (비보안) |
| SHA-1 | 160bit (40자) | 비권장 | 레거시 호환 |
| SHA-256 | 256bit (64자) | 안전 | 범용 (가장 권장) |
| SHA-384 | 384bit (96자) | 안전 | 고보안 환경 |
| SHA-512 | 512bit (128자) | 안전 | 최고 보안 수준 |
📜 알고리즘별 역사와 깨진 시점
- MD5 (1991) — 1995년 약점 지적, 2004년 Wang Xiaoyun 팀이 충돌 공격을 실용화하면서 사실상 깨졌습니다. 2008년에는 가짜 SSL 인증서가 만들어진 사례도 있어 단순 체크섬 외에는 쓰지 않습니다.
- SHA-1 (1995) — NSA 설계. 2017년 구글의 SHAttered 공격으로 두 개의 서로 다른 PDF가 같은 SHA-1을 갖는 사례가 공개되며 폐기 권고가 굳어졌습니다.
- SHA-256 (현재 산업 표준) — 비트코인 작업증명에 쓰이며 64라운드 압축으로 256비트 다이제스트를 만듭니다.
- SHA-384/512, SHA-3(Keccak) — 더 큰 다이제스트가 필요한 정부 등급 시스템에서 사용합니다.
🔒 보안 주의
비밀번호 저장에 SHA-256은 부족합니다. GPU로 초당 수십억 번 시도가 가능하기 때문입니다. bcrypt, scrypt, Argon2 같은 의도적으로 느린 알고리즘과 사용자별 salt를 함께 써야 합니다.
자주 묻는 질문
MD5는 왜 보안에 취약한가요?▼
2004년 Wang Xiaoyun 연구진이 실용적인 충돌 공격을 발표한 뒤 일반 PC로도 수 시간이면 서로 다른 두 입력이 같은 MD5를 갖도록 만들 수 있게 되었습니다. 파일이 변조되었는지 확인하는 체크섬 정도라면 여전히 쓸 수 있지만, 디지털 서명이나 인증서에는 절대 사용해서는 안 됩니다.
비밀번호 저장에 SHA-256을 쓰면 안 되나요?▼
SHA-256은 너무 빠르기 때문에 GPU로 초당 수십억 번 시도하는 무차별 대입에 취약합니다. 비밀번호는 의도적으로 느리게 설계된 bcrypt(2^cost 라운드), scrypt(메모리 비용), Argon2(2015 PHC 우승)를 사용해야 하며, 사용자별 salt도 반드시 함께 저장합니다.
같은 텍스트라면 어디서 해시해도 결과가 같나요?▼
네. 같은 알고리즘과 같은 입력 바이트 시퀀스라면 OS, 언어, 시간이 달라도 결과는 동일합니다. 이 결정성 덕분에 파일 다운로드 무결성 검증, Git 객체 ID, IPFS 콘텐츠 주소 등에 활용됩니다.
해시 결과로 원본을 복원할 수 있나요?▼
수학적으로 불가능합니다. 다만 입력 공간이 좁으면(예: 4자리 PIN) 사전 공격으로 역추적될 수 있어 salt와 충분한 길이의 입력을 함께 써야 안전합니다.