해시 생성기
MD5, SHA-1, SHA-256, SHA-512, HMAC — 모두 브라우저에서 계산
로컬 실행
loading…
이 도구에 대해
임의의 텍스트에 대한 MD5, SHA-1, SHA-256, SHA-384, SHA-512 다이제스트와 키가 있는 HMAC 서명을 브라우저에서 직접 계산합니다. SHA 계열과 HMAC은 브라우저가 TLS에 쓰는 것과 같은 검증된 프리미티브인 Web Crypto API를 사용하고, MD5(Web Crypto가 의도적으로 제외한)는 레거시 체크섬 작업용으로 작은 로컬 구현을 내장했습니다.
해시는 입력과 동시에 실시간으로 갱신되며 모든 알고리즘이 한꺼번에 계산되므로, 다운로드 페이지가 어떤 알고리즘을 골랐든 체크섬과 값을 비교하는 데 설정이 필요 없습니다. HMAC 모드는 webhook 서명 검증을 위한 비밀 키 필드를 추가합니다. GitHub, Stripe를 비롯한 대부분의 webhook 제공자는 HMAC-SHA256으로 페이로드에 서명합니다.
입력이 페이지를 벗어나지 않으므로, 온라인 서비스에 붙여넣을 수 없는 것들도 안심하고 해시할 수 있습니다. API 페이로드, 유출 해시 목록과 대조 중인 비밀번호, 내부 문서 같은 것들요.
자주 묻는 질문
- 어떤 해시 알고리즘을 써야 하나요?
- 오늘날 보안과 관련된 것이라면 무엇이든 SHA-256 이상입니다. MD5와 SHA-1은 충돌 저항성이 깨졌습니다. 같은 다이제스트를 갖는 서로 다른 두 입력을 만들어 낼 수 있으므로, 적대적이지 않은 체크섬과 레거시 프로토콜 호환용으로만 살아남아 있습니다.
- 그런데 왜 MD5를 아직 제공하나요?
- 여전히 마주치기 때문입니다. ETag, 캐시 키, 파일 매니페스트, 오래된 데이터베이스 컬럼 등. 이런 값을 검증하려면 암호학적 지위와 무관하게 MD5를 계산해야 합니다. 다만 새로운 것을 MD5 중심으로 설계하지는 마세요.
- HMAC이란 무엇이고 일반 해시와 어떻게 다른가요?
- HMAC은 해싱에 비밀 키를 섞어, 키 보유자만 다이제스트를 생성하거나 검증할 수 있게 합니다. 일반 해시는 무결성("이 데이터는 변경되지 않았다")을 증명하고, HMAC은 진본성("키를 가진 누군가가 이것을 만들었다")까지 증명합니다. 일상적인 용도는 webhook 서명 검증입니다.
- 해싱은 비밀번호 암호화와 같은 것인가요?
- 아닙니다. 그리고 SHA-256 같은 빠른 해시는 비밀번호 저장에 잘못된 도구입니다. 공격자는 초당 수십억 번을 시도할 수 있습니다. 비밀번호 저장에는 의도적으로 느리고 솔트가 적용된 알고리즘이 필요합니다. bcrypt, scrypt 또는 Argon2입니다.