MD5 해시 생성기 · 파일 체크섬 도구
MD5, SHA-256, SHA-1, SHA-512 해시를 온라인에서 무료로 생성합니다. 브라우저에서 텍스트나 파일을 해싱하고 체크섬을 검증하며 결과를 복사할 수 있습니다.
MD5 해시 생성기란 무엇인가요?
MD5(Message-Digest Algorithm 5)는 Ronald Rivest가 1991년에 설계한 128비트 암호 해시 함수(RFC 1321)로, 어떤 입력에서든 고정된 32자리 16진수 지문을 만들어 냅니다. 한때 디지털 서명과 인증서 검증에 널리 사용되었으나, 이제는 보안이 중요한 용도에서는 공식적으로 비권장이며 보안과 무관한 체크섬, 캐시 키, 데이터 중복 제거 등에는 여전히 흔하게 쓰입니다.
"MD5 must not be used for digital signatures... NIST is formally deprecating use of MD5." — NIST SP 800-131A
이 도구는 MD5와 함께 SHA-1(40자리 16진수), SHA-256(64자리 16진수), SHA-384(96자리 16진수), SHA-512(128자리 16진수)를 지원합니다. NIST는 2011년 보안 용도로의 MD5 사용을 비권장했습니다(NIST SP 800-131A). 보안이 중요한 용도에는 대신 SHA-256이나 SHA-512를 사용하십시오.
해시 함수는 단방향입니다. 입력으로부터 해시를 계산할 수는 있지만, 그 해시를 역으로 돌려 원본 데이터를 복원할 수는 없습니다. 이 특성 덕분에 해시 함수는 파일 무결성 검증, 체크섬 생성, 고유 식별자 생성에 유용합니다.
중요: MD5와 SHA-1은 암호적으로 깨졌으므로 비밀번호 해싱이나 디지털 서명 같은 보안 목적에는 사용해서는 안 됩니다. 비밀번호 저장에는 bcrypt, scrypt, Argon2를 사용하십시오.
모든 해싱은 SHA 계열에는 Web Crypto API를, MD5에는 순수 JavaScript 구현을 사용해 브라우저 내부에서 전적으로 실행됩니다. 데이터는 기기를 떠나지 않습니다. 브라우저의 네트워크 탭으로 직접 확인할 수 있습니다.
// Hash text using Web Crypto API (SHA-256)
async function sha256(text) {
const data = new TextEncoder().encode(text);
const hash = await crypto.subtle.digest('SHA-256', data);
return Array.from(new Uint8Array(hash))
.map(b => b.toString(16).padStart(2, '0'))
.join('');
}
await sha256('Hello, World!');
// → 'dffd6021bb2bd5b0af676290809ec3a53191dd81c7f70a4b28688a362182986f' 주요 기능
5가지 해시 알고리즘
MD5, SHA-1, SHA-256, SHA-384, SHA-512를 하나의 도구에서 지원합니다. 한 번의 클릭으로 알고리즘을 전환하고 출력을 즉시 비교할 수 있습니다.
텍스트 · 파일 해싱
어떤 텍스트 입력이든 해싱하거나 파일을 바로 업로드합니다. 끌어다 놓기도 지원합니다. 파일 무결성 검증과 체크섬 생성에 이상적입니다.
100% 브라우저 기반
모든 계산은 Web Crypto API를 사용해 로컬에서 실행됩니다. 서버로 전송되는 데이터가 없으므로 파일과 텍스트가 완전히 비공개로 유지됩니다.
즉시 결과
밀리초 단위로 해시 결과를 얻고 한 번의 클릭으로 클립보드로 복사합니다. 16진수 출력의 대문자와 소문자를 전환할 수 있습니다.
해시 알고리즘 비교
MD5
128비트 / 16진수 32자가장 빠른 해시 알고리즘이지만 2004년부터 암호적으로 깨졌습니다. 보안과 무관한 체크섬, 캐시 키, 데이터 중복 제거에만 적합합니다. 비밀번호나 디지털 서명에는 사용하지 마십시오.
SHA-1
160비트 / 16진수 40자암호적으로 손상되었습니다. Google이 2017년에 실전 충돌을 시연했습니다. 모든 주요 브라우저와 인증 기관이 비권장합니다. 레거시 시스템 호환용으로만 사용하십시오.
SHA-256
256비트 / 16진수 64자안전한 해싱의 현재 업계 표준입니다. TLS 인증서, Bitcoin, 파일 무결성 검증에 사용됩니다. 암호 해시 함수가 필요한 대부분의 새 프로젝트에 권장됩니다.
SHA-512
512비트 / 16진수 128자SHA-2 계열에서 가장 강력한 선택지입니다. 64비트 프로세서에서는 실제로 SHA-256보다 빠릅니다. 고보안 애플리케이션, SSH 키, TLS 1.3 같은 프로토콜에서 사용됩니다.
예시
빈 문자열의 MD5 해시
(빈 문자열)
d41d8cd98f00b204e9800998ecf8427e
MD5('') = d41d8cd98f00b204e9800998ecf8427e. 빈 입력의 MD5 해시는 테스트에 유용한 잘 알려진 상수입니다.
'Hello, World!'의 SHA-256
Hello, World!
dffd6021bb2bd5b0af676290809ec3a53191dd81c7f70a4b28688a362182986f
SHA-256('Hello, World!') = dffd6021bb2bd5b0af676290809ec3a53191dd81c7f70a4b28688a362182986f. SHA-256은 64자리 16진수 문자열을 만듭니다.
MD5 파일 체크섬
ubuntu-24.04-desktop-amd64.iso
(배포자의 체크섬과 비교)
파일 탭을 사용해 파일의 MD5 체크섬을 계산하십시오. 이 해시를 배포자가 제공한 체크섬과 비교하면 다운로드 중 파일이 변조되지 않았는지 확인할 수 있습니다.
사용 방법
- 1
입력 모드 선택
텍스트 콘텐츠를 해싱하려면 텍스트 탭을, 기기의 파일을 해싱하려면 파일 탭을 선택하십시오.
- 2
데이터 입력
텍스트 모드에서는 내용을 입력하거나 붙여넣습니다. 파일 모드에서는 파일을 끌어다 놓거나 업로드 영역을 클릭해 불러옵니다.
- 3
알고리즘 선택
MD5, SHA-1, SHA-256, SHA-384, SHA-512 중에서 선택하십시오. 기본값은 MD5입니다.
- 4
생성 후 복사
해시 생성을 클릭해 결과를 계산하십시오. 복사 버튼으로 해시를 복사하거나 대문자 토글로 대문자 16진수 출력을 얻으십시오.
흔한 오류
줄 바꿈 차이
운영체제마다 다른 줄 바꿈을 사용합니다. Unix/macOS는 LF(\n), Windows는 CRLF(\r\n)를 씁니다. 서로 다른 시스템에서 같은 텍스트를 복사하면 해시가 다를 수 있습니다.
"Hello\r\nWorld" → 4a24aba0b89e5056... (CRLF)
"Hello\nWorld" → 68e109f0f40ca72a... (LF — normalize first)
문자 인코딩 차이
같은 문자가 UTF-8과 Latin-1(ISO-8859-1)에서 다른 바이트 표현을 가질 수 있습니다. 텍스트가 같아 보여도 해시가 달라집니다.
"café" (Latin-1, 4 bytes) → 5765dac89dc15ef4...
"café" (UTF-8, 5 bytes) → 5c462401420cd614... (always use UTF-8)
끝의 공백
복사-붙여넣기에서 묻어 온 끝부분의 보이지 않는 공백이나 줄 바꿈이 해시를 바꿀 수 있습니다. 해시를 비교할 때는 입력을 다듬거나 끝부분의 공백을 인지하십시오.
"Hello " (trailing space) → d3ed7e7e35011513...
"Hello" (no trailing space) → 8b1a9953c4611296...
일반적인 활용 사례
- 파일 무결성 검증
- 다운로드한 파일의 해시를 배포자가 제공한 체크섬과 비교해 파일이 손상되거나 변조되지 않았는지 확인합니다.
- 데이터 중복 제거
- 파일이나 데이터 블록의 해시를 생성하여 바이트 단위 비교 없이 중복을 빠르게 식별합니다.
- 캐시 키 생성
- 입력 데이터에서 결정적 해시 키를 만들어 캐시 무효화, ETag, 콘텐츠 주소 지정 저장소에 사용합니다.
- API 서명 검증
- 많은 API가 요청 서명 과정에 MD5나 SHA-256을 사용합니다. 이 도구로 API 서명을 직접 검증하거나 디버깅할 수 있습니다.
기술 세부사항
- MD5 알고리즘
- MD5(Message-Digest Algorithm 5, RFC 1321)는 128비트 해시를 만듭니다. 입력을 512비트 블록으로 나누어 각 16회씩 4라운드의 연산으로 처리합니다. 빠르지만 암호적으로 깨졌으며 충돌 공격이 몇 초 안에 가능합니다.
- SHA 계열
- SHA-1은 160비트 해시를 만듭니다. SHA-256과 SHA-384/512는 SHA-2에 속합니다. 이 도구는 모든 SHA 변형에 대해 브라우저의 네이티브 Web Crypto API(crypto.subtle.digest())를 사용해 최적의 성능과 정확성을 보장합니다.
- Web Crypto API
- SubtleCrypto.digest() 메서드는 모든 현대 브라우저에서 하드웨어 가속 해싱을 제공합니다. ArrayBuffer 입력을 받아 ArrayBuffer를 반환하며, 화면 표시를 위해 16진수 문자열로 변환합니다.
모범 사례
- MD5를 보안 용도로 사용하지 말 것
- MD5는 암호적으로 깨졌습니다. 비밀번호 해싱, 디지털 서명, 인증서 검증에 사용하지 마십시오. 무결성 검사에는 SHA-256 이상을, 비밀번호에는 bcrypt나 Argon2를 사용하십시오.
- 체크섬에는 SHA-256 사용
- 파일 무결성 검증을 위한 믿을 만한 체크섬이 필요할 때는 SHA-256이 현재 표준입니다. 빠르고 충돌 저항성이 있으며 널리 지원됩니다.
- 다운로드는 해시로 검증
- 다운로드한 소프트웨어나 ISO의 해시를 배포자의 체크섬과 항상 대조하십시오. 파일 탭으로 해시를 계산해 비교하십시오.
- 해시 민감성
- 해시 함수는 입력 변화에 극도로 민감합니다. 단 1비트 차이만으로도 완전히 다른 해시가 나옵니다. 공백과 줄 바꿈을 포함해 입력이 의도한 그대로인지 확인하십시오.
자주 묻는 질문
MD5 해시는 무엇인가요?
MD5는 여전히 안전한가요?
MD5와 SHA-256의 차이는 무엇인가요?
파일 체크섬은 어떻게 검증하나요?
MD5, SHA-1, SHA-256 — 무엇을 써야 하나요?
MD5 해시를 역으로 돌려 원본 텍스트를 얻을 수 있나요?
이 도구 사용 시 데이터는 안전한가요?
같은 텍스트인데 해시가 다른 이유는 무엇인가요?
큰 파일도 해싱할 수 있나요?
MD5 체크섬은 무엇이며 해시와 어떻게 다른가요?
MD5는 암호와 같은가요?
JavaScript나 Python에서 MD5 해시는 어떻게 생성하나요?
const hash = await crypto.subtle.digest('SHA-256', new TextEncoder().encode('text')); Web Crypto는 MD5를 기본 지원하지 않으므로 'crypto-js' 같은 라이브러리나 순수 JS 구현을 사용하십시오. Python에서는 import hashlib; hashlib.md5('text'.encode()).hexdigest(). Node.js에서는 require('crypto').createHash('md5').update('text').digest('hex'). 코드를 작성하지 않고 빠른 일회성 해시 생성에는 이 도구를 사용하십시오. 다운로드한 파일이 손상되지 않았는지 확인해야 합니다. 체크섬에는 MD5와 SHA-256 중 어느 것을 써야 하나요?
레거시 시스템이 비밀번호를 MD5 해시로 저장하고 있습니다. 사용자에게 재설정을 강제하지 않고 bcrypt로 마이그레이션하려면 어떻게 하나요?
콘텐츠 주소 지정 저장소를 만들고 있습니다. 중복 제거 같은 비보안 해싱에도 MD5가 여전히 안전한가요?
관련 도구
모든 도구 보기 →무작위 비밀번호 생성기 (Random Password Generator)
보안 도구
강력한 무작위 비밀번호를 즉시 만드는 무료 온라인 도구. 길이와 문자 종류를 지정해 최대 50개까지 일괄 생성하고 엔트로피 분석을 확인할 수 있습니다.
UUID 생성기 · 디코더 (UUID Generator & Decoder)
보안 도구
무료 UUID 생성기. v1, v4, v5, v7 UUID를 즉시 생성하고 검증합니다. 최대 50개 일괄 생성 가능하며 100% 브라우저 기반 온라인 도구로 회원 가입이 필요 없습니다.
진법 변환기 (Number Base Converter)
변환 도구
2진수, 16진수, 10진수, 8진수 및 임의 진법(2-36)을 즉시 변환합니다. 온라인에서 무료로 사용할 수 있으며 모든 처리는 브라우저에서 이루어집니다.
Base64 디코더 · 인코더 (Base64 Decoder & Encoder)
인코딩 & 포매팅
Base64를 온라인에서 무료로 인코딩하고 디코딩합니다. UTF-8과 이모지를 완벽 지원하는 실시간 변환으로, 100% 브라우저에서 처리되어 회원 가입이 필요 없습니다.
이미지 압축기 · JPEG, PNG, WebP 온라인 압축
변환 도구
JPEG, PNG, WebP 이미지를 브라우저에서 최대 80% 압축합니다. 업로드 없이 20장 일괄 처리, 품질 조절, 전후 비교를 무료로 지원합니다.
JSON 포맷터 (JSON Formatter)
인코딩 & 포매팅
브라우저에서 JSON을 즉시 포매팅하고 유효성 검사를 수행합니다. 온라인 도구로 구문 검사, 오류 감지, 최소화, 복사를 지원하며 데이터는 서버로 전송되지 않습니다.