파일 해시 검증

파일

아래에서 "실망의 유효성"과 비교할 수 있습니다. 알고리즘은 재구성되어야합니다.

브라우저에서 로컬 파일의 MD5, SHA-1, SHA-256, SHA-512 해시 값을 계산하고, 한 번의 클릭으로 복사하거나 공식 기대값을 붙여넣어 자동 비교할 수 있어 다운로드 검증, 버전 비교, 전자 증거 포렌식에 적합합니다.

관련 추천

파일 해시란 무엇인가요?

파일 해시(File Hash)는 임의의 파일 내용을 해시 알고리즘을 통해 고정 길이 문자열인 '디지털 지문'으로 매핑한 것입니다. 동일한 파일은 매번 계산해도 같은 결과가 나오며, 내용이 조금이라도 바뀌면 해시 값도 완전히 달라집니다.

대표적인 용도: ①다운로드 완료 후 공식 해시와 비교하여 파일이 변조되지 않았음을 확인; ②버전 관리 — Git / SVN이 SHA-1로 각 커밋을 식별; ③파일 비교 — 두 파일이 동일한지 빠르게 판별; ④디지털 포렌식 — 파일 해시를 전자 증거의 무결성 증명 자료로 활용.

본 도구가 지원하는 알고리즘: MD5(128비트, 더 이상 충돌에 강하지 않음), SHA-1(160비트, Google이 충돌을 공개함), SHA-256(256비트, 현재 주류 권장), SHA-512 계열(512비트 / SHA-384 / SHA-512/256, 더 높은 보안성). 해시와 암호화는 다릅니다. 해시는 단방향이며 해시 값으로부터 파일 내용을 역추론할 수 없습니다.

사용 사례

  • 소프트웨어, 미러, 펌웨어를 다운로드한 후 공식 사이트에서 공개한 MD5 / SHA-256 해시와 비교하여 파일에 백도어가 삽입되지 않았는지, 전송 중 손상이 발생하지 않았는지 확인합니다.
  • 동료에게 대용량 파일을 보내기 전에 해시를 미리 계산해 두고, 상대방이 받은 후 다시 한 번 계산해 비교하도록 하여 전송 과정의 손상 여부를 확인합니다.
  • 계약서, 견적서, 스캔본 등 전자 증거에 대해 SHA-256 해시를 생성해 보관함으로써, 이후 '변조되지 않았음'의 증명 자료로 활용합니다.
  • 동일한 자료의 두 버전(수정 전 / 수정 후)을 비교할 때, 먼저 해시로 완전히 동일한지 확인한 후 재배포 여부를 결정합니다.
  • Git 저장소, 백업 패키지, 미러 노드 간의 일관성 점검: SHA-256을 한 번 계산하면 각 노드가 동기화되어 있는지 빠르게 판별할 수 있습니다.

이용 방법

  1. 업로드 영역을 클릭하여 로컬의 임의 파일을 선택합니다(한 번에 하나의 파일만 처리됩니다).
  2. 도구가 자동으로 해시 계산을 시작하며, 진행률 표시줄에 백분율이 실시간으로 나타납니다. 파일이 클수록 대기 시간이 길어집니다.
  3. 오른쪽의 해시 결과를 확인하고, 필요에 따라 알고리즘, 대문자 / 소문자 또는 SHA-512 계열 세분화 변형을 전환합니다.
  4. 공식 또는 상대방이 제공한 기대값을 '검증 기대값' 입력란에 붙여넣으면 도구가 즉시 일치 또는 불일치 여부를 표시합니다.
  5. '해시 복사' 버튼을 클릭하여 결과를 클립보드에 저장하거나, '다시 계산'을 클릭하여 현재 파일을 새로 고칩니다.

주요 기능

  • 로컬 계산으로 프라이버시 보호: 모든 해시 연산이 현재 브라우저에서 수행되며, 파일은 서버로 업로드되지 않습니다.
  • 네 가지 주류 알고리즘: MD5, SHA-1, SHA-256, SHA-512로 대부분의 다운로드 검증 및 파일 지문 시나리오를 포괄합니다.
  • SHA-512 계열 세분화: SHA-512, SHA-384, SHA-512/256 간 전환이 가능하여 다양한 길이의 기대값에 대응합니다.
  • 대문자 / 소문자 원클릭 전환: 기본적으로 소문자로 출력되며, Windows 도구나 공식 대문자 해시와 비교할 때 옵션을 선택하면 됩니다.
  • 기대값 붙여넣기 자동 비교: 공식에서 제공한 해시를 '검증 기대값' 입력란에 붙여넣으면 즉시 일치 또는 불일치 결과가 표시됩니다.
  • 실시간 진행률 표시: 대용량 파일을 블록 단위로 읽어 계산하며, 진행률이 실시간으로 갱신되어 브라우저가 멈추지 않습니다.
  • 해시 값 원클릭 복사: 계산 완료 후 복사 버튼을 클릭하면 결과가 바로 클립보드에 저장되어 검증표나 채팅 창에 손쉽게 붙여넣을 수 있습니다.

Best Practices

다운로드 파일 검증은 SHA-256을 우선 사용하세요

공식 사이트에서 공개하는 현대 소프트웨어, Linux 배포판, 컨테이너 이미지는 거의 모두 SHA-256을 제공합니다. MD5는 공식에서 명시적으로 MD5를 제공했고 출처의 신뢰성을 확신할 수 있는 경우에만 사용하고, 알고리즘의 약점으로 인한 불필요한 위험을 피해야 합니다.

비교 시 해시 값의 대소문자는 무시하세요

해시 알고리즘 자체에는 대소문자 개념이 없으며, 도구는 기본적으로 소문자를 출력합니다. 다만 Linux / macOS 명령행은 주로 소문자이고 Windows 검증 도구는 때때로 대문자를 표시합니다. 불일치가 발생하면 대소문자 차이인지 먼저 확인하여 파일 손상으로 오판하지 않도록 합니다.

해시 값은 완전한 파일 내용을 포함해야 합니다

압축 파일, 다중 파일 아카이브, ISO 이미지는 '완전한 상태'에서 해시를 계산해야 합니다. 먼저 압축을 해제한 뒤 해시를 계산하면 '이 압축 해제된 내용'이 올바르다는 것만 증명할 뿐, 원본 압축 파일 자체의 무결성은 보장할 수 없습니다.

전자 증거 시나리오에서는 해시와 서명을 함께 보관하세요

SHA-256 해시는 '파일 무결성'만 증명할 뿐 '누가 보냈는지'는 증명하지 못합니다. 외부에 전자 증거로 제시해야 할 경우에는 해시 외에 발신자의 디지털 서명이나 신뢰할 수 있는 제3자의 타임스탬프를 함께叠加하는 것이 좋으며, 해시 단독으로는 완전한 증거 체인을 구성하기에 충분하지 않습니다.

초대형 파일이나 기기 성능이 부족할 때는 다른 도구를 사용하세요

본 도구는 GB 단위 이하의 일반적인 파일에 적합합니다. 극단적으로 큰 파일이나 오래된 기기에서는 블록 단위 계산이 매우 느려지며, 이 경우 로컬의 openssl dgst, certutil 또는 시스템 기본 sha256sum을 명령행에서 사용하는 것이 더 빠릅니다.

키가 필요한 무결성 검증에는 HMAC을 사용하세요

파일 해시는 내용의 무결성만 검증하며 발신자 신원은 확인하지 못합니다. '이 파일이 내가 신뢰하는 출처에서 왔고 변조되지 않았음'을 확인하려면 일반 파일 해시가 아니라 HMAC 생성기를 공유 키와 함께 사용하여 해시 체인을 구성해야 합니다.

자주 묻는 질문

MD5와 SHA-256 중 어떤 것을 선택해야 하나요?

일상적인 다운로드 검증, 버전 비교, 파일 중복 제거에는 SHA-256이 더 안정적입니다. MD5는 상대방이 MD5만 제공하거나, 보안과 관련이 없는 시나리오(예: 로컬 파일 중복 제거)임을 확신하는 경우에만 사용하세요. 보안에 민감한 시나리오(전자 증거, 펌웨어 검증)에는 반드시 SHA-256 이상을坚持 사용하시기 바랍니다.

해시 값의 대소문자가 일치하지 않으면 검증 실패인가요?

아닙니다. 해시 알고리즘 자체에는 대소문자 개념이 없으며 단순한 표시 방식의 차이일 뿐입니다. 본 도구는 기본적으로 소문자를 출력하며, 대문자 기대값을 만나면 '대문자 출력'을 선택한 뒤 다시 계산하면 됩니다. 비교 시에는 대소문자를 무시하고 문자 자체가 완전히 일치하는지만 확인하세요.

제 해시 값이 공식에서 공개한 것과 일치하지 않는 이유는 무엇인가요?

흔한 원인: ①다운로드 과정에서 파일이 손상되었으므로 다시 다운로드; ②다운로드한 버전과 공식 해시에 대응하는 버전이 일치하지 않음(버전 번호, 파일 이름, 분할 번호 확인); ③압축 파일의 일부 내용만 계산함; ④공식에서 공개한 것이 다른 알고리즘임(예: 본인은 MD5를 사용했으나 상대방은 SHA-256을 공개).

이 도구는 SHA-224, BLAKE2, SM3를 지원하나요?

현재 MD5, SHA-1, SHA-256과 SHA-512 계열(SHA-512, SHA-384, SHA-512/256)을 지원합니다. SHA-224, BLAKE2, SM3 등의 알고리즘은 아직 지원하지 않습니다. 이러한 알고리즘이 필요할 경우 로컬 명령행 도구(openssl, sha256sum 등)를 사용하는 것을 권장합니다.

파일이 서버로 업로드되나요? 안전한가요?

업로드되지 않습니다. 본 도구는 crypto-js를 사용하여 브라우저에서 파일을 블록 단위로 로컬 계산하며, 파일 내용은 사용자의 기기와 브라우저 메모리에만 머무르고 어떠한 원격 서버로도 전송되지 않습니다. 민감한 문서, 계약서, 펌웨어도 안심하고 처리할 수 있습니다.

한 번에 여러 파일을 계산할 수 있나요?

현재 페이지는 한 번에 하나의 파일만 처리합니다. 일괄 검증이 필요할 경우 작업을 반복하거나, 로컬 명령행 도구(Windows의 certutil -hashfile, macOS / Linux의 md5sum / shasum)를 사용하여 여러 파일의 해시를 한 번에 나열할 수 있습니다.

SHA-512와 SHA-384 중 어떤 것을 선택해야 하나요?

상대방이 SHA-384를 명시적으로 제공한 경우 SHA-384를 선택하고, '더 높은 보안성'이 필요한 다른 시나리오에서는 기본적으로 SHA-512를 선택하세요. SHA-512/256은 출력 길이가 SHA-256(64자)과 동일하지만 내부적으로 SHA-512 압축 함수를 사용하므로, 출력 길이가 제한된 시스템에서更强的 충돌 저항 능력을 얻기에 적합합니다.

해시와 디지털 서명의 차이는 무엇인가요?

해시는 '파일 내용이 완전한지'만 검증하며 '누가 보냈는지'는 증명하지 못합니다. 디지털 서명 = 해시 + 발신자의 개인 키로 암호화한 것으로, 검증 측이 공개 키로 복호화하면 무결성과 발신자 신원을 동시에 확인할 수 있습니다. 출처를 증명해야 할 경우에는 해시 외에 별도의 서명 검증을 수행해야 합니다.

대용량 파일 해시 계산 시 브라우저가 멈추나요?

본 도구는 2MB 블록 단위 스트리밍 읽기를 사용하므로, 일반적인 수십 MB에서 수백 MB 파일은 정상적으로 완료됩니다. GB 단위 이상이거나 기기 성능이 약한 경우 계산 시간이 현저히 길어집니다. 명령행에서 이러한 대용량 파일 검증을 수행할 경우에는 시스템 기본 도구나 openssl을 사용하는 것을 권장합니다.

문제 해결

해시 값이 공식에서 공개한 것과 일치하지 않음

먼저 다운로드한 것이 공식에서 해시를 제공한 바로 그 버전인지(파일 이름, 버전 번호, 분할 번호 모두 확인) 확인한 후, 대소문자가 일치하는지, 완전한 파일에 대해 계산했는지를 점검하세요. 모두 일치하는데도 불일치한다면 파일이 다운로드 과정에서 손상되었을 수 있으므로 다시 다운로드하세요.

대용량 파일 계산이 느림

본 도구는 대용량 파일에 대해 2MB 블록 단위 스트리밍 계산을 사용합니다. 수백 MB 이내에서는 보통 수 초 내에 완료됩니다. GB 단위 이상일 경우 명령행을 권장합니다: Windows에서는 certutil -hashfile <파일명> SHA256, macOS / Linux에서는 shasum -a 256 <파일명>.

대문자를 선택하니 해시 값이 바뀜

해시 값 자체는 변하지 않았으며, 문자가 대문자로 표시될 뿐입니다. 비교 시에는 대소문자를 무시하거나, 기대값 역시 동일한 대소문자로 통일한 뒤 비교하세요.

알고리즘을 전환했는데 결과가 갱신되지 않음

알고리즘이나 대문자 / 소문자를 전환하면 도구가 현재 파일을 자동으로 다시 계산합니다. 만약 갱신되지 않으면 '다시 계산' 버튼을 눌러 강제로 한 번 더 계산하세요.

용어집

MD5
128비트(16진수 32자) 출력을 생성하는 해시 알고리즘입니다. 속도가 빠르지만 더 이상 충돌에 안전하지 않으며(2004년 왕샤오윈 팀이破解함), 파일 지문이나 중복 제거 용도로 적합하며 보안에 민감한 용도로는 사용해서는 안 됩니다.
SHA-1
160비트(16진수 40자) 출력입니다. 2017년 Google이 SHA-1 충돌을 공개하면서 주요 브라우저와 시스템은 더 이상 사용을 권장하지 않으나, Git의 기존 히스토리는 여전히 이에 의존합니다.
SHA-256
SHA-2 계열의 구성원으로, 256비트(16진수 64자) 출력을 생성합니다. 현재 주류 권장 알고리즘이며 HTTPS, Bitcoin, Git 신규 저장소 등에서 사용됩니다.
SHA-512
512비트(16진수 128자) 출력으로, SHA-256보다 충돌 저항 능력이 더 강하고 긴 파일에서 약간 더 빠릅니다. 본 도구는 SHA-384(96자)와 SHA-512/256(64자, SHA-256과 길이가 같지만 내부적으로 SHA-512 압축 함수를 사용)도 함께 지원합니다.
16진수(Hex)
해시 값의 가장 일반적인 표시 형식으로, 0-9와 a-f로 구성되며 바이트당 2자리를 차지합니다. 본 도구는 대문자 또는 소문자 전환을 지원합니다.
충돌(Collision)
서로 다른 두 파일이 완전히 동일한 해시 값을 생성하는 현상입니다. 충돌 저항 능력은 해시 알고리즘 보안성의 핵심 지표이며, MD5와 SHA-1은 이미 실용적인 충돌이 존재함이 증명되었습니다.
로컬 계산
모든 해시 연산이 현재 브라우저와 기기 메모리에서 수행되며, 파일 내용은 원격 서버로 전송되지 않으므로 민감한 문서의 검증에 적합합니다.

본 도구에서 지원하는 알고리즘 비교

알고리즘을 선택할 때는 상대방이 어떤 해시를 제공하는지, 그리고 보안에 민감한 시나리오인지를 우선 고려하세요.

알고리즘출력 길이보안성대표 시나리오
MD5128비트 / 32자약함(충돌破解됨)로컬 중복 제거, 구버전 호환
SHA-1160비트 / 40자약함(충돌破解됨)Git 히스토리 호환
SHA-256256비트 / 64자강함다운로드 검증, 펌웨어, 증거(권장)
SHA-384384비트 / 96자강함고보안 요구사항, 프로토콜 규정
SHA-512512비트 / 128자더 강함고보안 요구사항
SHA-512/256256비트 / 64자강함SHA-256 길이가 필요하지만 SHA-512 코어를 사용하고 싶은 경우

시나리오별 알고리즘 권장

동일한 파일이라도 사용 시나리오에 따라 가장 적합한 알고리즘은 달라집니다.

사용 시나리오권장 알고리즘핵심 가치
소프트웨어 / 미러 / 펌웨어 다운로드 검증SHA-256범용적이며 공식 지원이 광범위
Git 커밋 지문SHA-1기존 히스토리와의 호환
로컬 파일 중복 제거MD5속도가 빠르고 위험이 낮음
전자 증거 포렌식SHA-256 + 서명해시에 서명叠加, 사법적으로 더 안정적
전송 일관성 확인SHA-256양쪽 모두 계산 가능, 비교가 단순
프로토콜이 길이를 규정하는 경우SHA-384 / SHA-512/256프로토콜 제약을 충족

Authoritative References