두 파일을 놓으면 이 페이지가 브라우저 안에서 바이트 단위로 비교합니다: 모든 차이 오프셋, 맥락이 있는 hex diff, 차이 밀도 지도, 어떤 비트가 바뀌었는지 보여주는 비트 수준 분석. 별도의 블록 정렬 모드는 파일 중간의 삽입과 삭제를 감지합니다 — 평범한 바이트 diff가 정렬하지 못하는 경우입니다. 결과는 TXT와 CSV로 내보낼 수 있습니다. 아무것도 업로드되지 않습니다. 비교 대신 바이트를 편집하려면 hex 편집기를, 텍스트는 텍스트 Diff 도구를 쓰세요.
1. 두 파일 고르기
파일 A 첫 번째 파일을 여기에 놓거나 클릭해서 선택 최대 200 MB. 이 기계에 남습니다.
파일 B 두 번째 파일을 여기에 놓거나 클릭해서 선택 파일 A와 비교됩니다.
각 차이 주변의 hex 맥락: — 16바이트보다 가까운 이웃 차이는 하나로 묶입니다
2. 판정
두 파일이 모두 로드되면 비교 요약이 여기에 나타납니다...
차이 밀도 (빨강: 다른 바이트, 주황: 맥락)
0x0
비트 수준 분석 — 어떤 비트 위치가 바뀌었는지
3. 차이 — hex 보기
| 빨강 = 파일 A, 초록 = 파일 B, 같은 행은 한 번만 인쇄됨
Loading…
차이 블록
바이트별 차이 표
4. 블록 정렬 보기 (삽입 & 삭제 감지)
바이트 단위 diff는 오프셋 N을 오프셋 N과 정렬합니다. 한 파일의 중간에 바이트가 삽입/삭제되면 그 뒤 전부가 밀리고 평범한 diff는 꼬리 전체를 다른 것으로 보고합니다. 이 모드는 1 KB 블록을 해싱해 파일들 사이에서 맞추고 결과를 copy / insert / delete 연산으로 보고합니다 — xdelta 같은 델타 도구가 변화를 보는 방식입니다. 두 파일이 각 64 MB 이하일 때 사용할 수 있습니다.
5. 내보내기
프라이버시: 두 파일 모두 브라우저 자체 FileReader로 읽혀 이 탭에서 비교됩니다 — 서버 없음, 업로드 없음, 저장 없음. 큰 파일은 1 MB 조각으로 비교되어 200 MB 입력도 한 번에 전부 메모리에 앉지 않습니다(작업 중 두 파일을 로드하는 블록 정렬 보기 제외).
바이너리 파일 비교란?
바이너리 비교는 두 파일을 바이트 0에서 나란히 맞추고 앞으로 걸으며 바이트가 다른 모든 오프셋을 보고합니다 — 고전적 cmp -l 명령의 브라우저 판. 텍스트 diff 도구는 이것을 못 합니다. 인쇄 불가 바이트에서 막히거나 어떤 문자 인코딩으로 조용히 재해석합니다. 바이너리 비교는 두 파일을 정확히 있는 그대로, 바이트 배열로 다루며 펌웨어 이미지, 디스크 덤프, 데이터베이스 파일, 암호화 blob, 형식을 모르는 어떤 파일에도 원하는 것입니다.
세 질문이 세 깊이에서 답해집니다. "같은가?"는 체크섬 질문입니다 — 일괄 해시 도구가 가장 빨리 답하지만 예/아니오만. "어디서 다른가?"가 이 페이지의 바이트 diff입니다: 오프셋, 값, 어떤 비트가 뒤집혔는지. "어떤 종류의 변경인가?"가 블록 정렬 보기가 더하는 것입니다 — 차이가 자리에서의 편집인지, 삽입된 덩어리인지, 삭제된 덩어리인지.
바이트 diff vs 블록 정렬 — 왜 두 보기인가?
상황
바이트 단위 diff
블록 정렬 보기
필드가 자리에서 덮어 쓰임 (같은 파일 크기)
흩어진 몇 개의 차이 오프셋
같음 + "나머지는 전부 복사됨"
파일 B의 오프셋 2000에 1 KB 삽입
2000부터 전부 "다름"
0–2000 복사, 1 KB 삽입, 나머지 복사
파일 B 중간의 블록 삭제
그 지점부터 전부 "다름"
구멍까지 복사, N바이트 삭제, 나머지 복사
파일 B는 파일 A에 다른 헤더가 앞에 붙은 것
파일 전체가 "다름"
헤더 삭제, 그다음 긴 복사 하나 — 즉 상수 이동
바이트 diff는 항상 옳습니다 — 그 바이트들은 그 오프셋에서 정말로 다릅니다. 옮겨지는 것은 바이트가 삽입/삭제된 뒤의 해석이며, 텍스트 파일 맨 위에 줄 하나를 추가하면 뒤따르는 모든 줄 번호가 바뀌는 것과 정확히 같습니다.
비트 수준 분석의 읽는 법
각 다른 바이트에 대해 페이지는 A XOR B를 계산해 어떤 비트 위치가 설정되었는지 셉니다. 그 히스토그램은 놀랍게도 표현력이 있습니다. 비트 0(모든 바이트의 최하위 비트)에 집중된 차이는 LSB 스테가노그래피의 지문입니다 — 픽셀이나 오디오 샘플의 낮은 비트를 움직여 메시지를 숨기는 것. 여덟 위치에 고르게 퍼진 차이는 값 전체가 다시 쓰였다는 뜻입니다. 높은 비트만 건드린 차이는 보통 한 필드가 크기가 매우 다른 값으로 교체되었음을 뜻합니다. 해밍 거리(뒤집힌 비트 총수)는 같은 것을 숫자 하나로 양화합니다.
정직한 주의: 무작위 데이터는 임의의 바이트에서 1/256 확률로 우연히 일치하므로 같은 크기의 관련 없는 두 파일도 약 0.4%의 바이트에서 일치합니다. 99.98% 유사도와 몇 개의 짧은 차이 블록은 패치 수준의 변경입니다. 0.4% 유사도는 파일이 그냥 관련 없다는 뜻입니다.
흔한 오해
"첫 차이 뒤로 파일 전체가 빨강." — 위의 이동 효과이지 실제 오염이 아닙니다. 블록 정렬 보기를 돌려보세요. 삽입 하나와 긴 복사 두 개를 보고하면 두 파일은 정확히 그 삽입된 덩어리만큼 다른 것입니다. "체크섬은 같았는데 여기서는 다르다고 함." — SHA-256 다이제스트가 같으면 파일은 다르지 않습니다. 두 도구에서 같은 파일을 열었는지 다시 확인하세요. 반면 CRC-32 일치는 의도적 충돌에 대해 아무것도 증명하지 않습니다. "유사도 0.4%인데 한 가지만 바꿨는데요." — 편집이 압축 또는 암호화 컨테이너 안에서였다면(ZIP, PNG zTXt, 암호화 볼륨) 논리적 변경 하나가 압축 스트림 전체를 다시 씁니다.
FAQ
크기 한도는? — 바이트 diff는 파일당 200 MB, 1 MB 조각으로 비교합니다. 블록 정렬 보기는 두 파일을 모두 불러오므로 한쪽당 64 MB로 제한됩니다. 이동된 덩어리를 감지하나요? — 정렬기는 블록을 순서대로 맞춥니다. 다른 위치로 이동된 덩어리는 같은 내용의 삭제 + 삽입으로 나타나며, 올바르지만 약간 무딘 표현입니다. 패치 파일을 만들 수 있나요? — 아니요, 이 도구는 분석용입니다. CSV와 TXT 보고서는 기록과 검토용이며, 변경을 적용하는 데 쓸 수 없습니다. 내 파일은 어떻게 되나요? — 아무 일도 일어나지 않습니다. 서버도, 저장소도, 분석도 없습니다. 탭을 닫으면 입력한 모든 바이트가 사라집니다.