How a hash function turns input into a fingerprint
A cryptographic hash reads input of any length and produces a fixed-size digest. MD5 (RFC 1321) pads the input, appends its original length, and processes it in 512-bit blocks, mixing each block into four 32-bit state words through 64 rounds of additions, rotations and bitwise functions. The final state, written out as 16 bytes, is the digest. SHA-1 and SHA-256 follow the same block-and-compress design with larger state and different round functions.
Two properties matter in practice. The function is deterministic, so the same bytes always give the same digest: the MD5 of the word hello is 5d41402abc4b2a76b9719d911017c592 everywhere. And it is sensitive to every bit: hello followed by a newline hashes to b1946ac92492d2347c6235b4d2611184, with nothing in common. That is why a text-box hash and a file hash can disagree when the file ends with a line break.
The tool hashes text as UTF-8, exactly as typed, with no trailing newline added. Files are read in full and hashed as raw bytes, so a file's digest matches what md5sum, sha1sum or sha256sum print on Linux, certutil -hashfile on Windows, or shasum -a 256 on macOS.
Verifying a download step by step
Download the file, then find the checksum the publisher lists, usually next to the download link or in a file named SHA256SUMS or MD5SUMS. Choose the file in the tool, wait for the three digests, and paste the published value into the verify box. A match means the bytes on your disk are the bytes the publisher hashed. A mismatch means the download was corrupted, truncated, or is a different build.
A matching MD5 only proves integrity against accidents. If an attacker controlled the download page they could publish the hash of their own file, and with MD5 they could even craft a file whose digest matches a legitimate one. Vendors who care about this sign their checksum files with PGP or publish SHA-256. Prefer those when they exist and treat MD5-only listings as a corruption check, nothing more.
- Hash the archive you downloaded, not the files it extracts. Publishers hash the archive.
- Copy the published hash without surrounding text. Stray spaces are trimmed but extra letters are not.
- If the length is wrong for the algorithm (32, 40 or 64 hex characters), you copied the wrong line.
Why MD5 cannot protect passwords
A password hash has to be slow and salted so that a stolen database cannot be reversed by brute force. MD5 is the opposite: it was designed for speed, and modern GPUs compute billions of MD5 digests per second, so unsalted MD5 passwords fall to dictionary attacks and precomputed tables in minutes. The so-called MD5 decrypters online are lookup tables of common inputs, not a reversal of the function.
Store passwords with a function built for the job: bcrypt, scrypt, Argon2 or PBKDF2 with a per-user salt and a cost factor tuned to your hardware. Password Encryption produces those hashes and lets you compare the formats. The same reasoning applies to API tokens and session identifiers: if the value is secret, MD5 is the wrong tool.
MD5 also fails as a signature or a tamper seal. Collision attacks let someone prepare two different documents with the same digest, so a contract or an installer verified only by MD5 could be swapped for a prepared twin. SHA-1 has a demonstrated collision as well. SHA-256 has no known practical collision and is the sensible default for anything security-related.
Where the tool fits and where it stops
Legitimate MD5 uses survive: cache keys, deduplication, ETags, checksums inside file formats and compatibility with older systems that expect a 32-character digest. The tool is a quick way to produce one, or to confirm what a script generated. SHA-1 and SHA-256 come from the browser's Web Crypto API while MD5 is implemented in plain JavaScript, so on large files the MD5 row takes a moment longer.
Limits are those of your browser. A file is read entirely into memory before hashing, so multi-gigabyte files may stall or fail depending on the device. Nothing is uploaded and no history is kept. Refreshing the page clears the result. Hashing is also not encoding: if you need text to survive a transport rather than be fingerprinted, Base64 Encoder / Decoder is the right tool.