파일 이름과 크기가 같아도 내용까지 같다고 할 수는 없습니다. 반대로 이름을 바꾼 복사본은 같은 내용을 그대로 가질 수 있습니다. 제출 파일이나 백업본을 비교할 때는 이름·수정 시각과 파일 내용의 동일성을 나누어 확인하는 편이 정확합니다. 26바이트짜리 텍스트 파일 세 개를 만들어 SHA-256 결과를 비교했습니다.
같은 크기의 파일 세 개를 비교했습니다
원본에는 order=DEMO-01과 amount=1200을 넣었습니다. 복사본은 바이트를 그대로 복사하고 파일 이름만 바꿨습니다. 변경본은 마지막 숫자 0 하나를 1로 바꿨습니다. 세 파일의 크기는 모두 26바이트입니다. Python 3.14.6의 hashlib.sha256으로 각 파일의 전체 바이트를 읽어 계산했습니다.

| 비교 | 파일 크기 | SHA-256 결과 |
|---|---|---|
| 원본 대 복사본 | 26 / 26바이트 | 동일 |
| 원본 대 변경본 | 26 / 26바이트 | 다름 |
실험에서 확인한 해시
원본과 복사본: 1e82ee6c571ae874941cb475ecb92a9f2bb1acd13c9ae5ac426c29e0add3d6d9
숫자 하나를 바꾼 변경본: 7b525412751a7f43d27908e50990197589eb6293cea618bea5fee1fd45a51bb1
이 결과에서 파일 크기를 비교하는 것만으로는 변경을 찾을 수 없었고, 파일 내용으로 계산한 해시는 달랐습니다. 파일 이름을 바꿨다는 사실도 내용 변화와 연결되지 않았습니다. 비교해야 하는 것은 보내기로 결정한 파일과 실제로 전달된 파일의 바이트입니다.
Windows에서 확인하는 방법
PowerShell의 Get-FileHash는 기본 알고리즘으로 SHA-256을 사용합니다. 알고리즘을 명시하면 두 사람이 서로 다른 설정을 사용하는 혼동을 줄일 수 있습니다. 아래 명령의 파일 이름을 비교할 실제 사본으로 바꾸고 경로는 따옴표로 감쌉니다.
Get-FileHash -LiteralPath "hash-original.txt" -Algorithm SHA256
결과의 Hash 값을 두 파일에서 비교합니다. 경로에 공백이나 대괄호가 있으면 LiteralPath가 경로 문자를 와일드카드로 해석하지 않도록 하는 데 도움이 됩니다. 이 글의 실제 계산은 Python과 Mac의 shasum에서 대조했으며 두 결과가 일치했습니다. Windows PowerShell 실행 화면을 캡처한 것은 아닙니다.
Mac에서 확인하는 방법
터미널에서 파일이 있는 폴더로 이동하거나 파일의 전체 경로를 지정한 뒤 다음과 같이 확인할 수 있습니다. 명령 뒤의 파일 이름을 생략하면 표준 입력을 기다릴 수 있으므로 비교할 파일을 정확히 적습니다.
shasum -a 256 "hash-original.txt"
두 결과는 같은 알고리즘으로 계산했는지 확인합니다. 해시 문자열의 대문자·소문자 표기 차이는 바이트 내용의 차이를 의미하지 않습니다. 다만 앞의 몇 글자만 대충 비교하지 말고 전체 값을 대조해야 합니다.
PDF나 Office 문서에서 결과를 해석할 때
문서가 눈으로 같아 보여도 다시 저장하면서 문서 속성이나 내부 구조가 바뀌면 해시는 달라질 수 있습니다. 해시 불일치는 파일 바이트가 다르다는 뜻이지 본문이 악의적으로 바뀌었다는 뜻은 아닙니다. 반대로 해시가 같아도 작성자가 올바른 내용을 입력했는지, 파일이 안전한지, 배포 권리가 있는지는 알려주지 않습니다.
| 목적 | 해시가 알려주는 것 | 추가로 필요한 확인 |
|---|---|---|
| 전달 중 변경 확인 | 기준본과 바이트 일치 여부 | 기준 해시의 신뢰 가능한 전달 |
| 버전 비교 | 파일 내용 변화 여부 | 실제 변경 문장·수식 |
| 백업 검사 | 같은 파일의 보존 여부 | 누락 파일·복원 가능성 |
파일을 바꾸는 중에는 계산하지 않습니다
동기화나 다운로드가 진행 중인 파일, 다른 앱이 저장하는 중인 파일은 최종 상태가 아닐 수 있습니다. 먼저 저장과 전송 완료를 확인하고 비교용 사본을 정합니다. 해시가 다르면 원본을 덮어쓰지 말고 양쪽을 보존해 파일 형식에 맞는 비교를 진행합니다. 암호화된 파일은 암호화 결과의 바이트를 비교하는 것이며 원문이 같다는 별도의 판단까지 대신하지 않습니다.
같은 실험을 해볼 자료
원본 · 복사본 · 숫자 변경본. 모두 가상 주문 한 건을 적은 텍스트입니다. 확장자나 줄바꿈을 자동으로 바꾸는 편집기로 다시 저장하면 해시가 달라질 수 있으니 내려받은 파일 그대로 먼저 비교하십시오.
