Perbandingan File Biner

Letakkan dua file dan halaman ini membandingkannya byte per byte, langsung di dalam browser: setiap offset yang berbeda, diff hex dengan konteks sekitarnya, peta kepadatan perbedaan, dan analisis tingkat bit yang menunjukkan bit mana yang berubah. Mode blok yang diselaraskan terpisah mendeteksi penyisipan dan penghapusan di tengah file — kasus yang tidak bisa diselaraskan oleh diff byte biasa. Hasil dapat diekspor ke TXT dan CSV. Tidak ada yang diunggah ke mana pun. Untuk mengedit byte alih-alih membandingkan, lihat editor hex; untuk teks, alat Diff Teks.
FILE A
Letakkan file pertama di sini, atau klik untuk memilih
Hingga 200 MB. Tetap di mesin ini.
FILE B
Letakkan file kedua di sini, atau klik untuk memilih
Dibandingkan dengan File A.
Konteks hex di sekitar setiap perbedaan:  — perbedaan yang bertetangga dengan jarak kurang dari 16 byte ditampilkan sebagai satu blok.
Ringkasan perbandingan muncul di sini setelah kedua file dipilih dan dibandingkan.
Diff byte per byte menyejajarkan offset N dengan offset N. Jika byte disisipkan atau dihapus di tengah salah satu file, semua yang setelah titik itu bergeser dan diff biasa melaporkan seluruh ekornya sebagai berbeda. Mode ini melakukan hash pada blok 1 KB, mencocokkannya di antara kedua file, dan melaporkan hasilnya sebagai operasi salin / sisip / hapus — seperti cara alat delta seperti xdelta melihat perubahan. Tersedia jika kedua file berukuran 64 MB atau kurang.
Privasi: kedua file dibaca dengan FileReader milik browser dan dibandingkan di tab ini — tanpa server, tanpa unggahan, tanpa penyimpanan. File besar dibandingkan dalam irisan 1 MB, sehingga bahkan input 200 MB tidak pernah sepenuhnya berada di memori sekaligus (kecuali jika menjalankan tampilan yang diselaraskan blok, yang memuat kedua file selama prosesnya).

Apa itu perbandingan file biner?

Perbandingan biner menyejajarkan dua file pada byte 0 dan berjalan maju, melaporkan setiap offset tempat byte-nya berbeda — setara browser dari perintah klasik cmp -l. Alat diff teks tidak dapat melakukan ini: mereka gagal pada byte yang tidak dapat dicetak atau diam-diam menafsirkan ulang file dalam beberapa encoding karakter. Perbandingan biner memperlakukan kedua file sebagaimana adanya, yaitu larik byte, yang diinginkan untuk gambar firmware, dump disk, file basis data, blob terenkripsi, atau file apa pun yang formatnya tidak diketahui.

Tiga pertanyaan dijawab pada tiga kedalaman berbeda. “Apakah keduanya sama?” adalah pertanyaan checksum — alat menjawabnya paling cepat, tetapi hanya ya atau tidak. “Di mana keduanya berbeda?” adalah diff byte di halaman ini: offset, nilai, dan bit mana yang terbalik. “Jenis perubahan apa ini?” adalah yang ditambahkan tampilan yang diselaraskan blok — apakah perbedaan itu berupa suntingan di tempat, potongan yang disisipkan, atau potongan yang dihapus.

Diff byte vs penyelarasan blok — mengapa dua tampilan?

SituasiDiff byte per byte mengatakanTampilan yang diselaraskan blok mengatakan
Sebuah bidang ditimpa di tempat (ukuran file sama) beberapa offset yang berbeda tersebar sama, ditambah “semua yang lain disalin”
1 KB disisipkan pada offset 2000 file B semua dari 2000 ke atas “berbeda” salin 0–2000, sisipkan 1 KB, salin sisanya
Sebuah blok dihapus di tengah file B semua dari titik itu ke atas “berbeda” salin sampai celah, hapus N byte, salin sisanya
File B adalah file A dengan header berbeda yang ditambahkan di depan seluruh file “berbeda” hapus header, lalu satu salinan panjang — yaitu pergeseran konstan

Diff byte selalu benar — byte-byte itu memang berbeda pada offset tersebut. Yang bergeser adalah interpretasinya setelah byte disisipkan atau dihapus, sama seperti menambahkan baris di awal file teks membuat setiap nomor baris berikutnya berubah.

Cara analisis tingkat bit dibaca

Untuk setiap byte yang berbeda, halaman menghitung A XOR B dan menghitung posisi bit mana yang terset. Histogram itu sangat ekspresif: perbedaan yang terkonsentrasi di bit 0 (bit paling tidak signifikan dari setiap byte) adalah sidik jari steganografi LSB, tempat pesan disembunyikan dengan menggeser bit rendah sampel piksel atau audio. Perbedaan yang tersebar merata di kedelapan posisi berarti seluruh nilai ditulis ulang. Perbedaan yang hanya menyentuh bit tinggi biasanya berarti satu bidang diganti dengan nilai yang besarnya sangat berbeda. Jarak Hamming (total bit yang terbalik) mengukur hal yang sama dalam satu angka.

Satu catatan jujur: data acak kebetulan sama pada byte tertentu dengan probabilitas 1/256, sehingga dua file tak berhubungan dengan ukuran sama tetap cocok pada sekitar 0,4% byte. Kemiripan 99,98% dengan beberapa blok perbedaan pendek adalah perubahan tingkat patch; kemiripan 0,4% berarti file-nya memang tidak berhubungan.

Kesalahan umum

“Seluruh file merah setelah perbedaan pertama.” — itu efek pergeseran yang dijelaskan di atas, bukan kerusakan sungguhan. Jalankan tampilan yang diselaraskan blok: jika melaporkan satu penyisipan dan dua operasi salin panjang, file berbeda tepat sebesar potongan yang disisipkan itu. “Checksum cocok tetapi file berbeda di sini.” — jika digest SHA-256 cocok, file tidak berbeda; periksa ulang bahwa file yang sama dibuka di kedua alat. Kecocokan CRC-32, di sisi lain, tidak membuktikan apa pun terhadap tabrakan yang disengaja. “Kemiripan 0,4%, padahal hanya satu hal yang diubah.” — jika suntingan berada di dalam kontainer terkompresi atau terenkripsi (ZIP, zTXt PNG, volume terenkripsi), satu perubahan logis menulis ulang seluruh aliran terkompresi.

FAQ

Berapa batas ukurannya? — 200 MB per file untuk diff byte, dibandingkan dalam irisan 1 MB. Tampilan yang diselaraskan blok memuat kedua file, sehingga dibatasi 64 MB per sisi.
Apakah potongan yang dipindahkan terdeteksi? — penyelaras mencocokkan blok secara berurutan; potongan yang dipindahkan ke posisi lain tampak sebagai penghapusan dan penyisipan isi yang sama, yang merupakan deskripsi yang benar meski agak kasar.
Dapatkah menghasilkan file patch? — tidak, ini alat analisis; laporan CSV dan TXT untuk dokumentasi dan tinjauan, bukan untuk menerapkan perubahan.
Apa yang terjadi pada file? — tidak ada: tanpa server, tanpa penyimpanan, tanpa analitik; tutup tab dan setiap byte input akan hilang.