File Checksum Calculator
Drop a file in and get its digests. The file is read in the browser and never uploaded, which is the whole point of doing this locally rather than through a web service.
This page opens with file input selected.
Verifying a download
A project publishes a checksum next to its release. Compute the same digest locally and compare: if they match, the bytes you received are the bytes that were published.
Paste the published value into the comparison field rather than reading it character by character. Hex is normalised before comparison - whitespace stripped, case folded - so a value copied out of release notes with stray formatting still compares correctly.
What a matching checksum does and does not prove
It proves the file was not corrupted in transit or on disk. It does not prove the file is safe, because whoever published the checksum also published the file - an attacker who replaced one would replace the other. Only a signature backed by a key you already trust proves origin.
MD5 is adequate here despite being cryptographically broken: catching an accidental truncation is not an adversarial problem. Prefer SHA-256 where the publisher offers it.
Text and file paths agree
Hashing a file and hashing a string with identical bytes produce identical digests - an invariant the test suite pins directly. So you can verify a small text file either way and get the same answer.
Large files and memory
Very large files are read in the browser, so the practical ceiling is available memory rather than an upload limit. A multi-gigabyte disk image may be better hashed with a native tool.
For everything a browser can hold comfortably, doing it locally is both faster than uploading and safer, since the bytes never leave the machine.