개발자

🔒 해시 생성기

MD5·SHA-1·SHA-256·SHA-512 동시 + HMAC 서명·파일 무결성·SRI 해시. 전부 브라우저 처리.

🚨 중요MD5와 SHA-1은 충돌 공격이 발견되어 비밀번호 해싱·디지털 서명·SSL 인증서에 사용 금지입니다. 파일 무결성 확인(체크섬) 용도로만 사용하세요. 비밀번호는 반드시 bcrypt·scrypt·Argon2(서버 측)를 사용하세요. 본 도구는 모든 계산이 브라우저에서 수행되며, 입력 데이터는 외부로 전송되지 않습니다. 분야별 안전 안내는 면책조항 참고.

📝 입력 텍스트
글자수 0바이트 00
⚙️ 옵션
인코딩
출력
MD5128bit🟡 무결성 전용
입력 대기 중...

1992년 발표, 2004년 충돌 공격 발견. 빠르지만 보안 부적합.

SHA-1160bit🟡 무결성 전용
입력 대기 중...

1995년 발표, 2017년 SHAttered 충돌 시연. 디지털 서명 부적합.

SHA-256256bit🟢 안전 (권장)
입력 대기 중...

SHA-2 계열. 현재 가장 널리 쓰이는 안전한 해시. NIST 표준.

SHA-512512bit🟢 안전
입력 대기 중...

SHA-2 계열 512bit. 64bit 시스템에서 SHA-256보다 빠름.

🛠️ 어떻게 사용하나요?

  1. 탭 1 텍스트 — 텍스트 입력 → MD5/SHA-1/SHA-256/SHA-512 4개 알고리즘 동시 출력 (디바운스 200ms 자동 재계산) + 안전성 배지
  2. 탭 2 파일 — 드래그앤드롭 또는 파일 선택 → 4 알고리즘 자동 계산 + 진행률 + 예상 해시와 자동 비교(무결성 검증)
  3. 탭 3 HMAC — Secret Key + Message → HMAC-SHA1/256/384/512 서명 생성 + GitHub/Slack/AWS/JWT 시나리오 프리셋
  4. 탭 4 가이드 — 알고리즘 비교·안전성 등급·SRI 사용법·CLI 명령 대조

💡 옵션값(인코딩·출력 형식·HMAC 알고리즘 등)은 자동 저장되지만, 입력 텍스트·Secret Key는 보안을 위해 저장하지 않습니다.

🧮 해시 알고리즘 비교

본 도구가 지원하는 5개 해시 알고리즘 비교. SHA-256이 현재 가장 권장되는 표준입니다.

알고리즘출력안전성용도
MD5128bit / 32자🟡 무결성 전용 (2004 충돌)체크섬, 캐시 키
SHA-1160bit / 40자🟡 무결성 전용 (2017 충돌)Git, 레거시 호환
SHA-256256bit / 64자🟢 안전 (권장 표준)HTTPS, JWT, SRI, 블록체인
SHA-384384bit / 96자🟢 안전SRI, 고보안
SHA-512512bit / 128자🟢 안전 (64bit 시스템 빠름)금융, 정부, 고보안 서명

ⓘ 본 도구는 RFC 1321 (MD5)·NIST FIPS 180-4 (SHA-2) 표준을 준수합니다. 모든 결과는 같은 입력에 대해 md5sum·shasum CLI 명령과 100% 일치합니다.

🚨 안전성 등급 — 무엇에 써야 / 쓰지 말아야

MD5 · SHA-1을 절대 사용하면 안 되는 곳

  • 비밀번호 해싱 — 무지개 표(rainbow table)로 즉시 깨짐. 반드시 bcrypt·scrypt·Argon2(KDF, 서버 측)
  • 디지털 서명 — 충돌 공격으로 위변조 가능. SHA-256 + RSA/ECDSA
  • SSL/TLS 인증서 — CA Browser Forum 표준 SHA-256 이상 (모든 브라우저 SHA-1 인증서 차단)
  • JWT 서명 — 최소 HMAC-SHA256 (HS256). HS1은 부적합
  • 코드 사이닝·소프트웨어 배포 — Microsoft·Apple 모두 SHA-256 이상 의무화

📅 알려진 충돌 공격: MD5 (2004, Wang et al.), SHA-1 SHAttered (2017.02 Google·CWI), SHA-1 chosen-prefix (2020.01)

MD5 · SHA-1을 사용해도 되는 곳 (무결성 전용)

  • 파일 체크섬 — Linux ISO·소프트웨어 다운로드 무결성 (충돌 위험 ↔ 손상 검출은 OK)
  • 중복 파일 검출 — 같은 콘텐츠 빠르게 식별 (deduplication)
  • 캐시 키·CDN 무효화 — 콘텐츠 변경 감지용 식별자
  • Git 커밋 ID — Git이 SHA-1 사용 (점진적 SHA-256 전환 중)
  • 레거시 시스템 호환성 — 외부 시스템이 MD5/SHA-1만 지원할 때

🔑 HMAC 사용 시나리오 — 웹훅·API·JWT

HMAC은 비밀키 + 메시지를 합쳐 만드는 메시지 인증 코드(MAC)입니다. 단순 해시와 달리 키를 모르면 위조 불가능해 API 인증·웹훅 검증에 표준으로 쓰입니다.

서비스알고리즘 · 형식전송 위치
🐙 GitHub WebhookHMAC-SHA256, hexX-Hub-Signature-256 헤더
💬 Slack SigningHMAC-SHA256, hexX-Slack-Signature 헤더
☁️ AWS Sig V4HMAC-SHA256, hexAuthorization 헤더 (4단계 KDF)
🎫 JWT HS256HMAC-SHA256, Base64URLJWT 토큰 마지막 부분
🎫 JWT HS512HMAC-SHA512, Base64URLJWT 토큰 마지막 부분
💸 결제 PG (PayPal·Stripe)HMAC-SHA256, hexPAYPAL-TRANSMISSION-SIG 등

HMAC-SHA256이 사실상 현대 표준입니다. 본 도구의 [🔑 HMAC] 탭에서 시나리오 카드를 클릭하면 알고리즘·형식이 자동 설정됩니다.

📥 파일 무결성 검증 가이드 (CLI 비교)

ISO·설치 파일을 다운로드 후 무결성을 확인하는 표준 절차입니다. 본 도구의 결과는 아래 CLI 명령과 정확히 동일합니다.

알고리즘macOS / LinuxWindows
MD5md5sum file (Linux) / md5 file (macOS)certutil -hashfile FILE MD5
SHA-1shasum -a 1 filecertutil -hashfile FILE SHA1
SHA-256shasum -a 256 filecertutil -hashfile FILE SHA256
SHA-512shasum -a 512 filecertutil -hashfile FILE SHA512

💡 본 도구의 [📁 파일] 탭에 파일을 드래그하고 공식 사이트가 제공한 SHA256SUMS 값을 "예상 해시"에 붙여넣으면 자동으로 ✅/❌ 비교됩니다.

자주 묻는 질문 (FAQ)

Q1. MD5는 안전한가요?

아니요. 보안 용도로는 절대 안 됩니다. 2004년 Wang 등이 MD5 충돌 공격을 발표한 이후 비밀번호 해싱·디지털 서명·SSL 인증서 등 보안 용도로 사용이 금지됐습니다. 단, 파일 무결성(체크섬)·중복 검출·캐시 키 등 비보안 용도로는 여전히 사용 가능합니다. 비밀번호는 반드시 bcrypt·scrypt·Argon2 같은 KDF를 서버 측에서 사용해야 합니다.

Q2. SHA-1은 사용해도 되나요?

보안 목적으로는 사용 금지입니다. 2017년 Google이 SHAttered 공격으로 SHA-1 충돌을 시연했고, 2020년에는 더 강력한 chosen-prefix 충돌까지 가능해졌습니다. 모든 주요 브라우저(Chrome·Firefox·Safari·Edge)가 SHA-1 SSL 인증서를 차단합니다.
예외: Git 커밋 ID(점진적 SHA-256 전환 중), 레거시 호환, HMAC-SHA1(키가 비밀이면 충돌 공격 무관) 정도만 허용.

Q3. 비밀번호를 SHA-256으로 해싱하면 안 되나요?

안 됩니다. SHA 계열 단순 해싱은 비밀번호에 부적합합니다.
이유: ① 너무 빠름 → GPU로 초당 수십억 시도 가능 → 무지개 표·brute force에 취약. ② 솔트 자동 처리 X → 같은 비밀번호는 같은 해시 → 사용자 간 공유 비밀번호 노출.
올바른 비밀번호 해싱:
bcrypt — 가장 널리 쓰임 (BCrypt.NET, password_hash() in PHP)
scrypt — 메모리도 많이 씀 (ASIC 저항)
Argon2 — 2015 PHC 우승, 현 권장 표준 (Argon2id)
모두 서버 측에서 처리해야 하며, 클라이언트(브라우저)에서 비밀번호 해싱은 의미 없습니다 (서버는 해시도 비밀로 받아야 함).

Q4. HMAC과 일반 해시의 차이는?

HMAC(Hash-based MAC)은 비밀키 + 메시지를 함께 해싱해 생성하는 메시지 인증 코드입니다.
일반 해시 (SHA-256 등): 누구나 메시지만 알면 같은 해시 생성 가능 → 위조 가능
HMAC-SHA256: 키를 모르면 같은 해시 생성 불가능 → 메시지 위변조 검출 가능
공식: HMAC(key, msg) = H((key⊕opad) ‖ H((key⊕ipad) ‖ msg)) (RFC 2104)
GitHub 웹훅, Slack, AWS Signature V4, JWT HS256 모두 HMAC-SHA256 사용. 본 도구의 [🔑 HMAC] 탭에서 4개 시나리오 프리셋 제공.

Q5. 파일 해시가 다른 사이트와 다른 값이 나와요

가장 흔한 원인은 줄바꿈(newline) 차이입니다. Windows(CRLF)와 macOS/Linux(LF)는 같은 텍스트 파일이라도 바이트가 달라 해시가 달라집니다.
그 외 원인: ① 파일이 다운로드 중 손상, ② 메타데이터·BOM 포함 여부, ③ ZIP 압축 해제 시 시간 정보 변경, ④ 다른 알고리즘으로 계산
확인 방법: 같은 OS에서 같은 알고리즘으로 다시 계산해 보세요. 본 도구의 결과는 macOS/Linux의 shasum·md5sum과 100% 일치합니다 (UTF-8 기준).

Q6. 큰 파일도 해시 가능한가요?

가능합니다. 본 도구는 최대 1~2GB까지 브라우저 메모리 한도 내에서 처리 가능 (기기 RAM 의존).
SHA-1/256/512: Web Crypto API로 한 번에 계산 — 빠름
MD5: 8MB 청크 단위 스트리밍 처리 (RFC 1321 inline 구현) — 느리지만 매우 큰 파일도 가능
100MB 초과 시 메모리 사용량·시간 경고가 표시됩니다. 수 GB 파일은 CLI(`shasum -a 256 file.iso`) 사용을 권장합니다.

Q7. SRI 해시(integrity)는 어떻게 만드나요?

SRI(Subresource Integrity)는 CDN에서 로드되는 외부 스크립트가 변조되지 않았는지 검증하는 W3C 표준입니다.
생성 방법: 본 도구의 [📝 텍스트] 또는 [📁 파일] 탭에서 SHA-384 + Base64 출력을 사용 (또는 SHA-256/512).
HTML 사용:
<script src="..." integrity="sha384-Base64결과" crossorigin="anonymous"></script>jsDelivr·cdnjs는 자동 생성 SRI를 제공합니다. 자체 호스팅 시 본 도구로 생성 가능.

Q8. Base64와 hex 형식 어떻게 선택?

hex (16진): 일반적·가독성 ↑·길이 2배. 대부분 CLI·로그·검증용 표준.
Base64: 짧음(약 33% 압축)·HTTP 헤더·이메일 친화. SRI integrity= 속성, JWT 등에 사용.
Base64URL: +-, /_, 패딩(=) 제거. URL·파일명·JWT(헤더·페이로드·서명)에 안전.
용도별 권장:
• 파일 체크섬·CLI 비교 → hex
• SRI integrity 속성 → Base64 (또는 Base64URL)
• JWT 서명 → Base64URL (RFC 7515)
• API 헤더 (대부분 GitHub/Slack 등) → hex

Q9. 본 도구는 입력 데이터를 서버에 보내나요?

아니요. 모든 계산이 브라우저(클라이언트)에서 수행됩니다.
• MD5: 순수 JavaScript로 inline 구현 (외부 라이브러리·서버 호출 없음)
• SHA-1/256/512: 브라우저 Web Crypto API (네이티브)
• HMAC: Web Crypto API
• 파일: FileReader로 메모리 내 처리, 업로드 없음
또한 입력 텍스트·Secret Key·파일은 localStorage에도 저장하지 않습니다 (옵션값만 저장). 공용 PC 사용 후 브라우저 탭을 닫으면 모든 데이터가 즉시 사라집니다. 추가 안전을 원하면 시크릿 모드·DevTools로 메모리 정리 권장.

Q10. 해시 충돌(collision)이란 무엇인가요?

서로 다른 두 입력이 같은 해시값을 만드는 현상입니다. 해시 함수는 입력은 무한·출력은 유한이라 이론적으로 충돌은 항상 존재해요.
안전한 해시찾기가 사실상 불가능해야 합니다(비둘기 집 원리 + 출력 공간이 매우 큼).
MD5 충돌 (2004): 약 2^18 시도로 충돌 가능 → 디지털 서명 위조 가능
SHA-1 SHAttered (2017): Google이 100시간 GPU 작업으로 같은 SHA-1 두 PDF 시연
SHA-256: 2^128 시도 필요 → 우주 수명보다 긺 → 안전
충돌 위험이 있어도 무결성 확인(체크섬)은 OK — 우연한 손상은 충돌과 무관, 의도적 변조 위험만 문제.

함께 쓰면 좋은 도구

🔐

Base64 인코더/디코더

텍스트·파일 ↔ Base64

📋

JSON 포맷터

JSON 정렬·압축·유효성 검사

🔢

진법 변환기

2·8·10·16진 + 비트 연산