File Hash Compare

Hash several files at once and find out which of them are the same file wearing different names.

Runs on your deviceMoreWorkingNo account needed

What this tool does

File Hash Compare digests every file you add using the browser's Web Crypto implementation, then puts the files whose digests match into the same group. Comparing fingerprints instead of the contents themselves is what keeps it quick: each file is read exactly once, and everything after that is a string comparison, so a tenth file costs one more hash rather than nine more passes over the disk.

The result is a table with one row per file, in the order you added them — the name, the size, the full digest, and a verdict of either unique or identical with a group letter. Duplicate groups are lettered A, B, C with the biggest group taking A, so two rows carrying the same letter are the same file, and a summary line reports how many of the files turned out to be copies. A single file on its own is hashed and shown, with a note that there is nothing yet to compare it against. Leave the report checkbox ticked and you also get a plain .txt file, this one ordered with the duplicate groups first, listing each digest with its files beneath it.

The hashing happens in this browser tab. The files are read from your disk, digested there, and nothing about them is transmitted or stored, which is why the page still works with the network disconnected. One condition applies: crypto.subtle only exists in a secure context, so the page has to be served over https:// or from localhost. On a plain http:// page the browser withholds it and the job stops with that explanation rather than quietly hashing some other way.

Two boundaries are worth setting out first. The verdict rests on contents alone — filenames, folders and modification dates are never consulted — and it tells you whether two files differ, never where, so a document you need to see the changes in belongs in Text Diff or Compare PDFs instead. The other boundary is size: Web Crypto offers no streaming interface, so a file has to sit in memory whole while it is hashed; beyond roughly 2 GB the job is refused with a pointer to sha256sum or certutil on the desktop. Files are hashed one after another, so it is the largest single file that matters, not the size of the batch.

How to use it

  1. Add the files. Any file type, and more than two if you want — every file you add is hashed and grouped, not just a pair. Add one on its own and you get its digest, with nothing to match it against.
  2. Choose the hash. SHA-256 by default, which is the right answer almost always. SHA-512 is an equally sound alternative, and SHA-1 is there only for matching a digest something older already produced.
  3. Read the table. One row per file, in the order you added them: filename, size, the full digest, and either unique or identical — group A. Rows sharing a group letter are copies of the same file.
  4. Keep the report if you need a record. The optional .txt output lists each digest with its files indented underneath and marks the group identical or unique. It is named from the first file you added — archive.zip gives archive-hash-compare.txt.

Processing & privacy

Runs on your device. Your file is processed directly in this browser.

Common use cases

Clearing out duplicate downloads

A folder holding installer.zip, installer(1).zip and installer-final.zip resolves in a single pass: matching digests mean the same file three times, whatever the names suggest.

Checking a copy or a backup arrived whole

Add the original and the copy together. Identical files land in one group; a single flipped byte during the transfer puts them on separate rows with visibly different digests.

Confirming two exports really match

Two reports pulled from the same system on different days can look alike in a viewer while differing in an embedded timestamp. The digests settle it without reading either document.

Sorting a pile of scans or attachments

Copies accumulate under different filenames as things are forwarded and re-saved. Grouping by digest separates the genuine duplicates from the files that merely look similar.

Questions

Are my files uploaded?
No. Each digest is computed in this browser tab through the Web Crypto API, so the files are read locally and nothing about them is transmitted, logged or kept. The tool continues to work with the network switched off.
How many files can I put in at once?
As many as you like — a pair is the smallest useful batch, not the largest. Every file is hashed once, and each set of matching digests becomes its own lettered group, so a batch can contain several separate sets of duplicates and each is labelled apart from the others.
Does a matching hash really prove the files are the same?
With SHA-256 or SHA-512, in any practical sense yes — no two different inputs producing the same digest have ever been found for either. SHA-1 is a different case: crafted collisions have been demonstrated, so use it for reading old digests rather than for judging whether two files someone else supplied are the same.
Does it consider filenames or dates?
No, only the bytes. A renamed copy is still reported as identical, and two files sharing a name and a modification date are still reported as unique when one byte differs between them.
Why does it say Web Crypto is unavailable?
The browser exposes crypto.subtle only in a secure context. Over https:// or on localhost it is present; on a plain http:// page it is withheld and the job stops with that message instead of falling back to something weaker.
Will it delete the duplicates it finds?
No. It reports the groups and leaves every file exactly where it is. Nothing here can reach into your disk, so choosing which copy to keep and removing the rest stays with you.
Is a re-saved photo identical to the original?
Almost never. Re-encoding a JPEG, or merely rewriting a metadata field, changes the stored bytes, so the two files appear on separate rows even though they look the same on screen. This compares files, not appearances.
How is this different from Checksum Verifier?
Checksum Verifier checks one file against a digest a publisher gave you. File Hash Compare has no expected value at all — it hashes the files you add and tells you which of them match each other.

Related tools

  • Video to GIF — Turn a short clip into an animated GIF.
  • QR Code Generator — Create a QR code for a link, text, Wi-Fi or vCard.
  • GIF Maker — Build an animated GIF from images or a clip.
  • GIF Compressor — Reduce GIF file size by trimming frames and colours.
  • GIF to MP4 — Convert a GIF to a much smaller MP4 video.
  • GIF Splitter — Split an animated GIF into individual frames.