해시 생성기
텍스트를 입력하면 SHA-256, SHA-512, MD5 등 다양한 해시 값을 생성합니다.
사용법
- 해시를 생성할 텍스트를 입력합니다.
- 알고리즘을 선택하면 선택한 알고리즘이 상단에 강조됩니다.
- 모든 알고리즘의 해시 값이 동시에 표시되며, 복사 버튼으로 가져갈 수 있습니다.
지원 알고리즘
- SHA-256
- 256비트(64자) 해시. 현재 가장 널리 쓰이는 해시 알고리즘입니다. 블록체인, TLS 인증서 등에 사용됩니다.
- SHA-384 / SHA-512
- 384비트(96자) / 512비트(128자) 해시. SHA-256보다 긴 해시 값이 필요한 경우 사용합니다.
- SHA-1
- 160비트(40자) 해시. 충돌이 발견되어 보안 용도로는 더 이상 권장되지 않지만, Git 커밋 해시 등에 여전히 쓰입니다.
- MD5
- 128비트(32자) 해시. 보안 용도로는 안전하지 않지만, 파일 무결성 확인이나 체크섬 용도로 아직 사용됩니다.
알고리즘별 비교표
각 해시 알고리즘의 출력 길이, 속도, 보안 수준을 한눈에 비교할 수 있습니다.
| 알고리즘 | 출력 길이 | 속도 | 보안 수준 |
|---|---|---|---|
| MD5 | 128비트 (32자) | 매우 빠름 | 취약 (충돌 발견) |
| SHA-1 | 160비트 (40자) | 빠름 | 취약 (충돌 발견) |
| SHA-256 | 256비트 (64자) | 보통 | 안전 |
| SHA-384 | 384비트 (96자) | 보통 | 안전 |
| SHA-512 | 512비트 (128자) | 보통~느림 | 매우 안전 |
해시 활용 사례
- 비밀번호 저장
- 서비스에 비밀번호를 저장할 때 원문 대신 해시 값을 저장합니다. 로그인 시 입력한 비밀번호를 해시하여 저장된 해시와 비교합니다. 이때 bcrypt, scrypt, Argon2 같은 전용 해시 함수와 솔트(salt)를 함께 사용하는 것이 권장됩니다.
- 파일 무결성 검증
- 파일 다운로드 후 제공된 해시 값과 비교하면 파일이 손상되거나 변조되지 않았는지 확인할 수 있습니다. 소프트웨어 배포 시 SHA-256 체크섬을 함께 제공하는 것이 일반적입니다.
- 디지털 서명
- 문서나 코드의 해시를 개인 키로 암호화하면 디지털 서명이 됩니다. 수신자는 공개 키로 서명을 검증하여 내용이 변조되지 않았음을 확인합니다. SSL/TLS 인증서, Git 커밋 서명 등에 사용됩니다.
- 데이터 중복 제거
- 클라우드 스토리지에서 파일의 해시를 비교하여 동일한 파일의 중복 저장을 방지합니다. 해시 값이 같으면 이미 저장된 파일을 재사용하여 저장 공간을 절약합니다.
자주 묻는 질문
해시란 무엇인가요?
해시(Hash)는 임의의 데이터를 고정된 길이의 문자열로 변환하는 함수입니다. 같은 입력은 항상 같은 해시 값을 만들지만, 해시 값에서 원본을 역추적하는 것은 사실상 불가능합니다. 데이터 무결성 확인, 비밀번호 저장 등에 쓰입니다.
SHA-256과 MD5의 차이는?
SHA-256은 256비트(64자) 해시를 생성하고, MD5는 128비트(32자) 해시를 생성합니다. MD5는 충돌(서로 다른 입력이 같은 해시를 만드는 현상)이 발견되어 보안 용도로는 권장되지 않습니다. 새로운 시스템에는 SHA-256 이상을 사용하세요.
해시로 원본 텍스트를 복원할 수 있나요?
해시 함수는 단방향 함수입니다. 해시 값에서 원본 텍스트를 수학적으로 복원하는 방법은 없습니다. 이 특성 때문에 비밀번호를 해시로 저장하면 데이터가 유출되어도 원본 비밀번호를 알 수 없습니다.
입력한 정보가 저장되나요?
아닙니다. 모든 해시 생성은 브라우저 안에서만 이루어지고, 입력한 텍스트는 서버로 전송되지 않습니다.
솔트(salt)란 무엇인가요?
솔트는 비밀번호를 해시하기 전에 덧붙이는 랜덤 문자열입니다. 같은 비밀번호라도 솔트가 다르면 완전히 다른 해시 값이 나옵니다. 이로써 사전 공격(rainbow table)을 방어할 수 있습니다. 비밀번호 저장 시에는 반드시 솔트를 사용해야 합니다.