File Hash Compare
Hash several files at once and find out which of them are the same file wearing different names.
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
- 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.
- 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.
- 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.
- 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?
How many files can I put in at once?
Does a matching hash really prove the files are the same?
Does it consider filenames or dates?
Why does it say Web Crypto is unavailable?
Will it delete the duplicates it finds?
Is a re-saved photo identical to the original?
How is this different from Checksum Verifier?
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.