파일 체크섬 비교하는 법: 해시로 무결성 확인

다운로드한 파일이 원본과 똑같은지 궁금할 때, 파일 전체를 열어 하나하나 비교할 필요는 없습니다. 같은 파일은 언제 어디서 계산하든 해시값(체크섬)이 항상 똑같이 나오고, 단 한 바이트만 달라도 해시값 전체가 완전히 다른 문자열로 바뀌기 때문입니다.

이 원리를 알면 '일치/불일치' 결과 하나만 보고도 파일이 손상되거나 바뀌었는지를 스스로 판단할 수 있습니다.

요약 ① 같은 파일·같은 텍스트는 언제 계산해도 해시값이 항상 동일합니다(결정성). ② 글자 하나, 공백 하나만 달라져도 MD5·SHA-1·SHA-256 값 전체가 완전히 달라집니다(눈사태 효과). ③ 다운로드 페이지의 공개 체크섬과 내 파일의 해시가 '일치'하면 원본과 바이트 단위로 같은 파일입니다.

왜 이 문제가 생기나요

공식 홈페이지가 아닌 미러 서버나 오래된 링크에서 설치 파일, 압축파일, ISO 이미지를 받는 경우가 있습니다. 파일 크기가 비슷하고 실행이나 압축 해제가 정상적으로 된다고 해서 원본과 완전히 같다는 보장은 없습니다.

다운로드 도중 일부 데이터가 손상됐거나, 배포 경로 중간에서 파일이 바뀌었을 수도 있습니다. 파일을 열어보는 것만으로는 이런 미세한 차이를 알아채기 어렵습니다.

이럴 때 파일 전체를 처음부터 끝까지 다시 대조할 수는 없습니다. 대신 파일 내용 전체를 정해진 길이의 문자열 하나로 압축한 해시값(체크섬)만 비교하면 충분합니다.

해시값이 실제로 계산하는 것

MD5, SHA-1, SHA-256은 모두 해시 함수입니다. 입력이 짧은 텍스트든 몇 기가바이트짜리 파일이든, 그 내용 전체를 정해진 길이의 16진수 문자열 하나로 변환해 계산합니다. MD5는 32자, SHA-1은 40자, SHA-256은 64자입니다.

이 계산에는 핵심 성질이 하나 있습니다. 입력이 완전히 같으면 언제, 어디서, 어떤 기기로 계산하든 출력되는 해시값이 항상 똑같다는 것입니다. 이를 결정성(determinism)이라 부릅니다.

그래서 배포자가 원본 파일을 놓고 미리 계산해 공개해둔 값과, 내가 지금 내 파일로 계산한 값을 비교하는 일이 의미를 가집니다. 두 값이 같다면 두 파일도 바이트 단위로 같다는 뜻이 됩니다.

공백 하나만 달라도 완전히 달라지는 이유

입력이 단 한 글자, 심지어 대소문자 하나나 보이지 않는 공백 하나만 달라져도 해시값은 처음부터 끝까지 완전히 다른 문자열로 바뀝니다. 이를 눈사태 효과(avalanche effect)라고 부릅니다.

직접 확인할 수 있습니다. 텍스트 비교 모드의 대상 A에 dynamiclabs를 입력하고, 대상 B에 앞글자만 대문자로 바꾼 Dynamiclabs를 입력하면 SHA-256 값이 이렇게 달라집니다.

dynamiclabs  → 2988d93522c60dccbc8b68541d7eb1db5fb335f3b2f6db6ae4fe17e02001b52a
Dynamiclabs  → b07b3d4cd5e310c6585e33fccf2cd1ee78c16fafdf4be9b2494c9f8ee9cf32b4

글자 하나(대소문자)만 바꿨을 뿐인데 64자 중 겹치는 부분이 거의 없습니다. 끝에 눈에 보이지 않는 공백 한 칸만 추가해도 결과는 마찬가지로 완전히 달라집니다.

이 성질 때문에 해시 비교는 "대략 비슷하다"는 결과를 내지 않습니다. 완전히 같거나(일치), 완전히 다르거나(불일치) 둘 중 하나만 있습니다.

도구 없이 체크섬을 직접 비교하는 방법

체크섬 값 확인하고 계산하기

1단계 — 공식 체크섬을 확인합니다. 소프트웨어 배포 페이지나 리눅스 배포판 ISO 페이지에서는 파일명 옆이나 별도의 체크섬 파일(예: SHA256SUMS)에 'MD5', 'SHA-1', 'SHA-256' 같은 라벨과 함께 16진수 문자열이 공개된 경우가 많습니다. 어떤 알고리즘으로 계산된 값인지 라벨부터 확인합니다.

2단계 — 같은 알고리즘으로 내 파일의 해시를 계산합니다. 운영체제에 기본 내장된 명령으로 계산할 수 있습니다.

  • Windows: certutil -hashfile 파일경로 SHA256
  • macOS: shasum -a 256 파일경로
  • Linux: sha256sum 파일경로

알고리즘을 MD5로 바꾸려면 명령의 SHA256을 MD5로, sha256sum을 md5sum으로 바꿔주면 됩니다.

두 값을 대조해 일치 여부 확인하기

3단계 — 두 값을 한 글자씩 대조합니다. 대소문자 차이는 값 자체가 같으므로 무시해도 되지만, 문자와 순서는 처음부터 끝까지 완전히 같아야 '일치'입니다.

64자짜리 문자열을 눈으로 한 글자씩 맞춰보는 건 시간이 걸리고, 중간 어딘가의 한 글자를 놓치기도 쉽습니다. 앞뒤 몇 글자만 대충 맞춰보고 넘어가면 실수가 생깁니다.

저희 도구로 확인하기.

해시값 비교 검증기

MD5·SHA-1·SHA-256을 브라우저에서 즉시 계산하며, 입력한 텍스트와 파일은 서버로 전송되지 않습니다.

일치/불일치를 읽을 때 흔히 하는 실수

체크섬 문자열을 복사할 때 앞뒤에 공백이나 줄바꿈이 함께 딸려오는 경우가 있습니다. 텍스트를 그대로 비교하는 방식에서는 이것도 '다른 문자'로 취급되어, 실제 해시값은 같은데도 불일치로 표시될 수 있습니다. 복사한 값의 앞뒤에 여백이 섞이지 않았는지 확인하는 것이 안전합니다.

16진수 해시값은 대문자로 쓰든 소문자로 쓰든 같은 값입니다. 예를 들어 a1b2와 A1B2는 같은 값을 표기만 다르게 한 것입니다. 다만 문자열 자체를 그대로 비교하는 방식에서는 대소문자가 다르면 다른 텍스트로 인식될 수 있으니, 비교 전에 대소문자를 맞춰두는 편이 안전합니다.

가장 흔한 실수는 서로 다른 알고리즘끼리 비교하는 것입니다. 사이트가 공개한 값은 SHA-256인데 내가 계산한 값은 MD5라면, 같은 파일이라도 두 값은 애초에 같을 수 없습니다. 알고리즘별로 길이가 다르므로 자릿수만 봐도 알고리즘이 섞였는지 바로 확인할 수 있습니다.

알고리즘16진수 길이
MD532자
SHA-140자
SHA-25664자

해시값이 불일치한다는 것은 '두 입력이 바이트 단위로 다르다'는 사실만 알려줍니다. 그 이유가 다운로드 중 손상인지, 파일이 바뀐 것인지, 아니면 애초에 다른 버전 파일을 받은 것인지는 해시값만으로 구분되지 않습니다. 재다운로드 후 다시 비교해보는 것이 확인할 수 있는 방법 중 하나입니다.

정리

  • 같은 파일·같은 텍스트는 언제 계산해도 해시값이 항상 동일합니다(결정성).
  • 글자 하나, 공백 하나만 달라져도 해시값 전체가 완전히 달라집니다(눈사태 효과).
  • 비교할 때는 반드시 같은 알고리즘끼리(예: SHA-256과 SHA-256) 대조해야 합니다.
  • 복사한 체크섬에 공백·줄바꿈이 섞이지 않았는지, 대소문자가 통일됐는지 확인한 뒤 비교하는 것이 안전합니다.
  • 해시 불일치는 '다르다'는 사실만 알려줄 뿐, 손상·변조·버전차이 중 무엇인지는 별도로 확인이 필요합니다.
해시값 비교 검증기

MD5·SHA-1·SHA-256을 브라우저에서 즉시 계산하며, 입력한 텍스트와 파일은 서버로 전송되지 않습니다.

자주 묻는 질문

MD5, SHA-1, SHA-256 중 어떤 값을 확인해야 하나요?

다운로드 페이지에 공개된 알고리즘과 같은 것을 확인하면 됩니다. 여러 값이 함께 제공된다면 어느 것을 봐도 결과는 같지만(같은 파일이면 세 값 모두 원본과 일치), 충돌 위험이 낮은 SHA-256을 우선 확인하는 경우가 일반적입니다.

해시값이 일치하면 파일이 완전히 안전하다는 뜻인가요?

일치한다는 것은 그 체크섬을 계산했던 원본 파일과 내 파일이 바이트 단위로 동일하다는 뜻입니다. 다만 그 체크섬 자체가 신뢰할 수 있는 공식 채널에서 온 것인지는 별도의 확인이 필요한 부분이며, 해시 비교만으로 확인되는 범위는 아닙니다.

텍스트도 비교할 수 있나요, 파일만 되나요?

텍스트와 파일 모두 비교할 수 있습니다. 텍스트 비교 모드에서는 입력한 텍스트 두 개를, 파일 비교 모드에서는 파일 두 개를 각각 해시로 변환해 비교합니다. 문서 내용이 조금이라도 바뀌었는지 확인할 때도 같은 방식으로 쓸 수 있습니다.

계산은 어디서 이뤄지나요? 파일이 서버로 전송되나요?

아니요. 입력한 텍스트와 파일은 브라우저 안에서만 처리되며 서버로 전송되지 않습니다. MD5·SHA-1·SHA-256 계산도 브라우저 내에서 즉시 이뤄집니다.

가격 보기카톡 무료 상담