SHA-256, byte for byte, on this device
Are these two files exactly the same?
Pick two files and shoots.page shows their sizes and SHA-256 fingerprints, with an instant identical-or-different verdict. If the two 64-character hashes match, every byte matches; hashing runs in your browser and nothing is uploaded.
Last updated
Compare two files
Drop a file in each slot. Everything is read and hashed on this device; nothing is sent anywhere.
How the comparison works
Your browser's built-in Web Crypto API reads each file and computes its SHA-256 hash. You see both sizes and both full hashes, then the verdict. Any file type works, not only photos.
What a match proves, and what it does not
A hash match proves byte-identity: the two files hold the exact same data, with no recompression, no resizing and no metadata stripped. Any alteration at all, even re-saving a JPEG at the same quality, changes the bytes and produces a completely different hash.
That is all it proves. A match says nothing about who created a file, where it came from, or when it was made; anyone can copy a file, and the copy hashes the same. Treat the verdict as a sameness check, not a certificate of origin.
When photographers reach for this
Typical moments: confirming a copy on a second drive is intact, checking a client received the exact file you exported, or verifying a downloaded gallery file against the original on disk.
shoots.page stores originals byte-for-byte, so a JPEG, PNG, HEIC, TIFF or WebP original downloaded from your gallery hashes identically to the file you uploaded, a quick way to prove the delivery chain kept your work untouched. A RAW photo reaches clients as a new full-size JPEG, which will not match; a RAW download, when you allow it, will. More on that in share photos without losing quality.
Deliver originals that hash the same
Upload the finished set and share one gallery link. Every JPEG, PNG, HEIC, TIFF or WebP original your client downloads matches your file byte for byte.