해시 생성기란?
해시 함수는 어떤 길이의 데이터든 고정된 길이의 지문 값으로 바꿉니다. 내용이 한 글자만 달라도 해시값이 완전히 달라지기 때문에, 내려받은 파일이 원본과 같은지 확인하는 체크섬, 데이터 위·변조 검사, API 요청 서명(HMAC) 등에 쓰입니다.
SHA 계열은 브라우저의 Web Crypto API로, MD5는 자체 구현으로 계산하며 큰 파일은 4MB씩 나눠 읽어 진행률을 보여 줍니다. 파일은 서버로 업로드되지 않습니다.
사용 방법
- 텍스트 탭에 내용을 입력하거나 파일 탭에서 파일을 선택하세요. 다섯 가지 해시가 바로 계산됩니다.
- API 서명처럼 비밀 키가 필요하면 HMAC을 켜고 키를 입력하세요.
- 출력 형식은 hex 소문자, HEX 대문자, Base64 중에서 고를 수 있습니다.
- 배포처에서 받은 체크섬을 비교할 해시값에 붙여 넣으면 어떤 알고리즘과 일치하는지 알려 줍니다.
알고리즘별 길이와 용도
| 알고리즘 | 길이 (hex) | 보안성 | 주 용도 |
|---|---|---|---|
| MD5 | 32자 | 충돌 공격 가능 | 단순 체크섬, 캐시 키 |
| SHA-1 | 40자 | 충돌 공격 가능 | Git 객체 ID, 레거시 |
| SHA-256 | 64자 | 안전 | 파일 검증, 블록체인, JWT |
| SHA-384 | 96자 | 안전 | TLS, 서브리소스 무결성(SRI) |
| SHA-512 | 128자 | 안전 | 높은 보안이 필요한 서명 |
예: SHA-256("abc") = ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad
비밀번호 저장에는 해시만 쓰면 안 됩니다
MD5나 SHA-256은 매우 빨라서 비밀번호를 그대로 해시하면 무차별 대입 공격에 금방 뚫립니다. 비밀번호는 bcrypt, scrypt, Argon2처럼 일부러 느리게 설계되고 솔트(salt)를 쓰는 전용 함수로 저장해야 합니다. 개인정보보호법의 안전성 확보조치 기준도 비밀번호를 안전한 일방향 암호화로 저장하도록 요구합니다.
자주 묻는 질문
같은 글인데 다른 사이트와 해시값이 달라요.
대부분 문자 인코딩이나 줄바꿈 차이입니다. 이 도구는 UTF-8 기준이며, 끝에 줄바꿈(엔터)이 하나 더 있거나 Windows 줄바꿈(CRLF)이면 값이 달라집니다.
해시값으로 원래 내용을 알아낼 수 있나요?
해시는 일방향 함수라 계산으로 되돌릴 수 없습니다. 다만 짧고 흔한 문자열은 미리 계산해 둔 표(레인보우 테이블)로 찾아낼 수 있어서, 비밀번호 보호용으로는 적합하지 않습니다.
큰 파일도 계산되나요?
1GB까지 지원합니다. 파일을 4MB씩 나눠 읽으며 진행률을 표시하고, 100MB 파일은 보통 몇 초 안에 끝납니다. 모든 계산은 기기 안에서만 이루어집니다.
HMAC은 일반 해시와 무엇이 다른가요?
HMAC은 비밀 키를 섞어 계산하므로 키를 아는 사람만 같은 값을 만들 수 있습니다. 결제·웹훅·API 요청이 위조되지 않았는지 확인하는 서명에 쓰입니다(RFC 2104).