Toolvore

Binary File Compare

Compare local files byte by byte, review difference ranges and download JSON, CSV or text reports.

This tool processes its input contents in your browser instead of sending them to a processing service. Page, asset and fixed usage-measurement requests are described on the Privacy page.

Compare two local files at exact byte offsets, review contiguous differences and extra tail bytes, and download complete bounded reports with SHA-256 digests.

How to use it

  1. 1Choose two files up to 16 MiB each, including empty files, then Compare files.
  2. 2Review the exact-byte verdict, zero-based ranges, extra tail bytes and bounded hex context.
  3. 3Download JSON, CSV or text; comparison is positional and does not align insertions or deletions.

Example

Input
Left bytes: 01 02 03 04 · Right bytes: 01 09 03 04 ff
Output
Two differing positions: changed range [1, 2) and right-only range [4, 5). First difference: decimal 1, hexadecimal 0x1.

The sample's final ff is a separate extra tail byte. No insertion alignment is inferred.

What happens to your data

Both input files stay in browser memory while the worker compares their bytes and computes offsets and digests. Comparison reports and file hashes are generated locally without uploading either file. Fixed usage events exclude file contents, selected filenames, byte values and raw exception text; ordinary page and software-asset requests remain separate network activity.

Last updated November 2026

Check whether two files contain exactly the same bytes and see where they differ. Toolvore compares byte positions directly, reports contiguous changed ranges and extra tail bytes, calculates SHA-256 checksums and provides a bounded hexadecimal context for each range. It works with any local file type and does not decode, execute or upload either file.

How it works

Choose a left file and a right file, each up to 16 MiB, then select Compare files. Empty files are supported. Comparison and hashing run in a cancellable local Web Worker with a 15-second execution limit. Changing either file or clearing the page invalidates the old output; a late worker response cannot restore it.

At every offset shared by both files, the exact unsigned byte values are compared. Consecutive unequal positions form one changed range. Bytes beyond the shorter file form a separate left-only or right-only tail range. The differing-position count is the sum of these range lengths. Offsets are zero-based; every end offset is exclusive. For example, 1–2 describes only the byte at offset 1. The first difference is displayed in decimal and hexadecimal.

This is a positional comparison, not an edit-distance algorithm: it does not infer inserted or deleted blocks or realign matching content. Inserting one byte near the start can make many later positions differ even if the remaining content is otherwise similar. For human-readable documents or source files, use a text diff when line-level insertion and deletion alignment matters. For structured formats such as ZIP, PDF or XLSX, different metadata or compression can change bytes even when the visible document seems the same.

The page shows 20 ranges at a time. Each range includes up to 32 bytes of hexadecimal context from each side, starting up to eight bytes before the difference; it is deliberately not a full hex editor. JSON, CSV and text downloads contain all supported ranges, not just the current page. More than 10,000 ranges causes a complete rejection rather than a silently truncated report. That avoids presenting a partial comparison as complete. The reports use fixed field names, numeric offsets, fixed range kinds and hex byte strings; no source filenames or decoded source text are placed in the CSV.

SHA-256 digests describe the selected complete byte sequences. A byte-for-byte identical result is established by the actual comparison, not only by matching hashes. A checksum does not authenticate a publisher, identify malware or prove that a file is trustworthy. Memory use can exceed the combined input size while holding worker copies, contexts and reports; the source caps are not a universal device memory guarantee.

File bytes, email text, headers, attachment names and selected filenames stay in browser memory; neither tool posts them to a server. Normal page and usage measurement described on Privacy can record a fixed tool action, success, failure code or download action. Those events exclude file contents, filenames, email addresses and checksums. Downloads are created only after an explicit click. Clear removes the current input and result from this page; it cannot remove a file already downloaded to your device.

Worked example: Find a changed byte and one extra tail byte

Input
Left bytes: 01 02 03 04 · Right bytes: 01 09 03 04 ff
Result
Two differing positions: changed range [1, 2) and right-only range [4, 5). First difference: decimal 1, hexadecimal 0x1.

The sample's final ff is a separate extra tail byte. No insertion alignment is inferred.

Common use cases

  • Checking whether a downloaded file matches a local copy byte for byte
  • Locating changed bytes in two firmware or binary-data snapshots
  • Reviewing length mismatches and exact offsets without exposing file contents to a server
  • Saving a structured difference report for a controlled local investigation

Frequently asked questions

Does this align inserted or deleted bytes?+

No. It compares the bytes at the same offsets. A shifted section can create many changed positions. Extra bytes beyond the shorter file are reported as left-only or right-only tail ranges.

What does end-exclusive mean?+

The end offset is the first position outside a range. A range starting at 4 and ending at 5 contains one byte at offset 4. This avoids ambiguity when calculating the length as end minus start.

Can equal-looking documents have different bytes?+

Yes. Formats such as PDF, ZIP and XLSX can contain timestamps, metadata or compressed representations that differ while the displayed content looks the same. This tool checks exact bytes, not document meaning or visual equivalence.

Does a matching SHA-256 prove a file is safe?+

No. It can help compare bytes against a separately trusted expected digest, but does not authenticate the publisher or scan for malware. The identical verdict here also uses a direct byte comparison.

Does the report include every difference?+

A successful comparison includes all its ranges in the downloads; the page is paginated. If more than 10,000 ranges are found, the comparison is rejected with no partial report. Each range's hex context is limited to 32 bytes per side.

Are empty or executable files supported?+

Empty files can be compared. Any file type can be read as inert bytes within the size limits; nothing is executed or opened as a program. This does not make an executable safe to run later.