File Hash Generator
Hash one local file in your browser and compare its full digest with SHA-2 or SHA-3 plus required RIPEMD-160 and legacy references.{{ summaryTitle }}
{{ summaryLine }}
Checksum record
{{ digestDisplay }}
{{ digestCopyAnnouncement }}
Comparison use
{{ comparisonGuidance }}
Security reading
{{ securityGuidance }}
Chart renderer unavailable. The checksum and ledger remain usable.
| File | Settings | Checksum | Copy |
|---|---|---|---|
| {{ row.file }} | {{ row.settings }} | {{ row.digest }} |
A checksum comparison has three essential parts: the exact file bytes, the named hash algorithm, and a reference digest obtained through a trustworthy channel. If any one of them differs, the hexadecimal strings should not match.
This makes hashing useful after a download, backup, copy, migration, or evidence handoff. A filename can stay the same while the contents change, and two different files can share a familiar name. A cryptographic hash maps the complete byte stream to a fixed-length digest, so even a small content change normally produces a very different value.
| Question | What a full match supports | What still needs separate evidence |
|---|---|---|
| Are these the same bytes? | The local file matches the byte stream represented by the reference under the same algorithm and salt rule. | The reference must actually describe the intended file. |
| Did the file arrive intact? | A trusted before-and-after digest match is strong evidence that the bytes did not change. | Transport logs and provenance may still matter. |
| Is the file authentic? | A checksum can support authenticity only when the reference came through an independently trusted source. | Publisher identity, signatures, and chain of custody. |
| Is the file safe? | A match says nothing by itself about whether the matched file is benign. | Code signing, malware analysis, permissions, and safe execution practices. |
Algorithm names are part of the reference. SHA-256 and SHA3-256 both produce 256-bit digests, but they are different functions and will not produce the same value for one file. Digest length can expose a mismatch in algorithm choice, yet two algorithms may share a length, so the published name must still be checked.
MD5 and SHA-1 remain common in older manifests and archives. They can still identify an accidental mismatch against a required legacy reference, but their collision resistance is unsuitable for new security decisions. SHA-2 or SHA-3 is the safer choice when creating a new checksum workflow and no outside system requires another algorithm.
Salted file hashes are a specialized convention, not the normal format for software release checksums. Adding text before or after the file changes the byte stream and therefore the digest. Both parties must agree on the exact text, UTF-8 encoding, position, and algorithm. This construction is not a password-hashing function, key derivation function, or keyed message authentication code.
A complete comparison is all-or-nothing. Do not compare only the beginning or end of a long digest, and do not dismiss a difference in letter case until confirming that the underlying hexadecimal characters are otherwise identical. One changed hex character means the displayed values do not match.
How to Use This Tool:
Begin with the algorithm named beside the trusted checksum, then hash the exact file object that reference describes.
- Choose or drop one Source file. If several files are dropped, only the first is used and the remainder are reported as ignored.
- Select the exact Hash algorithm named by the reference. SHA-256 is the default for a new ordinary check; MD5 and SHA-1 are marked for legacy compatibility.
- Leave Salt text blank for normal release and download checksums. If an established workflow requires salt, enter no more than 256 characters and match whether its UTF-8 bytes come before or after the file.
- Wait for 100% completion, then compare every character in the Checksum record with the trusted value. Confirm the filename, file size, algorithm, and salt rule in the verification record before accepting a match.
Interpreting Results:
A matching digest means the complete input byte stream produced the same value under the selected algorithm. Confidence depends on the reference: a checksum copied from the same untrusted download location does not provide independent proof.
- A mismatch should stop the handoff until the file, algorithm, reference, and salt rule are checked again.
- Uppercase hexadecimal changes presentation only.
ab12andAB12represent the same hexadecimal digits. - The digest-width profile is a size comparison, not a security score. Equal width does not make SHA-256 and SHA3-256 interchangeable.
- For MD5 or SHA-1, a match can satisfy a legacy checksum requirement but should not be promoted into a new collision-resistant security claim.
Technical Details:
A hash function accepts a byte string of arbitrary length and returns a digest with a fixed width determined by the algorithm. File names and modification times are not included in the hashed byte stream.
Transformation Core:
An ordinary checksum hashes the file bytes directly. Salted modes concatenate UTF-8 salt bytes before or after those bytes.
H is the selected hash algorithm, B is the exact file byte sequence, S is the UTF-8 encoding of the salt text, and D is the hexadecimal digest. The concatenation order is part of the rule.
Files are read in 2 MiB browser chunks and fed to one incremental hash state in byte order. Chunking reduces peak read size without changing the digest because the byte sequence remains continuous. Empty files are valid inputs and finalize the selected algorithm without any file chunks.
Algorithm and Width Map:
| Algorithm | Digest bits | Hex characters | Use note |
|---|---|---|---|
| MD5 | 128 | 32 | Legacy comparison only |
| SHA-1 | 160 | 40 | Legacy comparison only |
| RIPEMD-160 | 160 | 40 | Use when an existing reference names it |
| SHA-2-224 | 224 | 56 | SHA-2 family |
| SHA-2-256 | 256 | 64 | General default |
| SHA-2-384 | 384 | 96 | Use when the reference names it |
| SHA-2-512 | 512 | 128 | Use when the reference names it |
| SHA-3-224 | 224 | 56 | SHA-3 family |
| SHA-3-256 | 256 | 64 | Distinct from SHA-2-256 |
| SHA-3-384 | 384 | 96 | Distinct from SHA-2-384 |
| SHA-3-512 | 512 | 128 | Distinct from SHA-2-512 |
Each byte becomes two hexadecimal characters after hashing, so the displayed length is the digest width divided by four. Uppercase mode changes only the letters a to f; it does not recompute a different digest.
Privacy and Security Notes:
The selected file is read and hashed in the browser. Its bytes are not uploaded or placed in the shareable URL; the file remains available only in the current page session for rehashing. Salt text also stays out of shareable page state.
- Large files still require local disk reads and processing time even though they are handled in bounded chunks.
- A checksum match is only as trustworthy as the reference source and algorithm choice.
- MD5 is not appropriate where collision resistance is required, and NIST recommends transitioning away from SHA-1 in favor of SHA-2 or SHA-3.
- A raw salted hash does not provide the protections of a password-specific key derivation function or HMAC.
Worked Example:
Known SHA-256 sample:
The built-in sample contains the three UTF-8 bytes for abc. With SHA-2-256, no salt, and lowercase output, its digest is ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad. The 64 hexadecimal characters confirm the expected 256-bit width; changing the algorithm or adding salt must produce another value.
References:
- Hash Functions, National Institute of Standards and Technology.
- NIST Policy on Hash Functions, National Institute of Standards and Technology, updated September 9, 2024.
- RFC 6151: Updated Security Considerations for MD5, RFC Editor, March 2011.
- How to check a certificate fingerprint using OpenSSL, Simplified Guide.