파일을 드래그하거나 클릭하여 선택

모든 파일 형식 지원

해시 알고리즘 비교, SRI, CI/CD 적용 방법을 더 깊이 알고 싶다면 파일 무결성 검증 가이드를 참고하세요.

파일 해시란?

해시(hash)는 임의 크기의 데이터를 고정 길이의 문자열로 변환하는 암호학적 함수입니다. 동일한 입력은 항상 동일한 해시값을 생성하고, 입력이 1바이트만 달라져도 완전히 다른 해시가 나옵니다(avalanche effect). 이 성질을 이용하여 파일의 무결성을 검증하거나 데이터 변조 여부를 확인할 수 있습니다.

이 도구는 파일을 업로드하면 SHA-256, MD5, SHA-1 세 가지 알고리즘의 해시값을 동시에 계산합니다. 모든 처리는 브라우저의 Web Crypto API와 JavaScript로 수행되며, 파일이 서버로 전송되지 않습니다. 기밀 문서나 민감한 파일도 안전하게 검증할 수 있습니다.

해시 알고리즘 비교

SHA-256은 미국 국가안보국(NSA)이 설계한 SHA-2 패밀리의 일부로, 256비트(64자 16진수) 해시값을 생성합니다. 현재까지 충돌 공격이 발견되지 않았으며, 파일 무결성 검증, 디지털 서명, 블록체인 등에서 표준으로 사용됩니다. 특별한 이유가 없다면 SHA-256을 기본으로 사용하세요.

MD5는 128비트(32자) 해시를 생성하며 계산 속도가 빠릅니다. 그러나 1996년부터 충돌 취약성이 발견되어, 보안 목적으로는 더 이상 사용해서는 안 됩니다. 레거시 시스템 호환이나 단순 파일 식별 용도로만 사용하세요.

SHA-1은 160비트(40자) 해시를 생성합니다. 2017년 Google이 실제 충돌 사례(SHAttered)를 시연한 이후, 주요 브라우저와 Git 등에서 SHA-256으로의 전환이 진행 중입니다. 새로운 프로젝트에서는 SHA-1 사용을 피하세요.

실무 활용 사례

소프트웨어 배포 검증 — 배포 사이트에서 제공한 SHA-256 채크섬과 다운로드한 파일의 해시를 비교하여, 전송 중 변조나 손상이 없었는지 확인합니다. Linux 배포판, Python 패키지(PyPI), Node.js 패키지 등이 이 방식을 사용합니다.

백업 무결성 확인 — 원본 파일과 백업본의 해시를 비교하여 저장 매체 손상이나 복사 오류로 인한 데이터 변조를 감지합니다.

파일 전달 검증 — 메신저, 이메일, 클라우드 저장소 등을 통해 전달한 파일이 원본과 동일한지 확인합니다. 특히 계약서, 설계도, 실행 파일 등 중요 문서에 유용합니다.

CI/CD 파이프라인 — 빌드 산출물(artifact)의 해시를 기록하고, 배포 단계에서 검증하여 빌드와 배포 간 파일 동일성을 보장합니다.

해시의 기술적 특성

암호학적 해시 함수는 세 가지 핵심 속성을 가집니다. 첫째, 역상 저항성—해시값으로부터 원본 데이터를 복원하는 것이 계산적으로 불가능합니다. 둘째, 충돌 저항성—동일한 해시를 생성하는 두 개의 서로 다른 입력을 찾는 것이 그러나 실용적으로 불가능합니다. 셋째, 사태효과(avalanche effect)—입력의 아주 작은 변화도 출력 해시를 완전히 바꿕니다.

이러한 속성 덕분에 해시는 파일 무결성 검증뿐 아니라, 디지털 서명, 블록체인, 비밀번호 저장 등 다양한 보안 분야에서 활용됩니다.

사용 시 주의사항

알고리즘 선택 — 특별한 요구사항이 없으면 SHA-256을 기본으로 사용하세요. MD5와 SHA-1은 충돌 취약성이 알려져 있으며, 레거시 시스템 호환 목적으로만 제공됩니다.

해시 일치의 의미 — 해시가 일치하면 파일의 바이트 내용이 동일하다는 의미입니다. 다만, 파일이 악성코드를 포함하지 않는다는 것을 보장하지는 않습니다. 해시 검증은 무결성 확인이지 안전성 확인이 아닙니다.

대용량 파일 — 이 도구는 최대 30MB 파일을 지원합니다. 브라우저 메모리에서 전체 파일을 읽어야 하므로, 대용량 파일은 처리 시간이 길어질 수 있습니다. 수백 MB 이상의 파일은 sha256sum이나 certutil 같은 커맨드라인 도구를 권장합니다.

자주 묻는 질문

어떤 해시 알고리즘을 사용해야 하나요?

특별한 요구사항이 없으면 SHA-256을 권장합니다. MD5와 SHA-1은 충돌 취약성이 발견되어 보안 목적에는 부적합합니다. 레거시 시스템에서 MD5를 요구하는 경우에만 MD5를 사용하고, 새로운 프로젝트에서는 SHA-256 이상을 선택하세요.

파일명을 바꾸면 해시도 바뀌나요?

아니요. 해시는 파일 내용(바이트)만을 기준으로 계산됩니다. 파일명이나 확장자를 변경해도 내용이 같으면 동일한 해시가 나옵니다.

파일이 서버로 전송되나요?

아닙니다. 모든 해시 계산은 브라우저의 Web Crypto API와 JavaScript로 수행됩니다. 파일 내용이 외부 서버로 전송되지 않으며, 개발자 도구의 Network 탭에서 확인할 수 있습니다.

왜 동일한 파일인데 해시가 다르게 나오나요?

파일이 실제로 다르거나, 전송 과정에서 변경된 경우입니다. 특히 텍스트 파일은 줄바꿈 문자(LF vs CRLF)나 인코딩(UTF-8 vs UTF-16)이 달라지면 해시가 변경됩니다. 바이너리 파일이라면 전송 경로를 확인하세요.

최대 처리 가능한 파일 크기는 얼마인가요?

이 도구는 최대 30MB 파일을 지원합니다. 브라우저가 파일 전체를 메모리에 읽어야 하므로, 더 큰 파일은 sha256sum(Linux/macOS)이나 certutil -hashfile(Windows) 커맨드를 사용하세요.

해시로 원본 파일을 복원할 수 있나요?

아닙니다. 해시는 일방향 함수로, 해시값으로부터 원본 데이터를 복원하는 것은 계산적으로 불가능합니다. 이것이 해시의 핵심 보안 속성(역상 저항성)입니다.

여러 파일을 한번에 해시할 수 있나요?

이 도구는 안정적인 성능을 위해 한 번에 하나의 파일을 처리합니다. 대량 해싱이 필요하면 sha256sum *.zip 같은 CLI 도구나 Web Crypto API 스크립팅을 활용하세요.

파일 해시와 텍스트 해시의 차이점은?

파일 해시는 파일의 원시 바이트를 직접 처리합니다. 텍스트 해시는 문자열을 UTF-8로 인코딩한 후 바이트를 해싱합니다. 동일한 텍스트 내용이라도 BOM이나 줄바꿈 차이로 결과가 다를 수 있습니다. 문자열 해싱은 텍스트 해시 도구를 사용하세요.

광고 영역