Hash text or files up to 2 GiB with SHA-256 and copy the 64-character hex digest, or paste a published checksum to verify a download.
Runs in your browser — your input is processed on this device and never uploaded.
Pasted text up to 100 MiB, read as UTF-8, or files up to 2 GiB each.
Paste the published SHA-256 checksum before running. Checked against each file.
Results appear here.
SHA-256 takes any input and returns 256 bits: 32 raw bytes, or 64 hexadecimal characters. It belongs to the SHA-2 family standardized in NIST FIPS 180-4, and the length never varies with the size of the input.
Always 256 bits, whatever the size of the input. How many characters you see depends on how those bits are written out:
| Written as | Length |
|---|---|
| Bits | 256 |
| Raw bytes | 32 |
| Hexadecimal | 64 characters |
| Base64 | 44 characters, ending in one = |
A value of any other length is not a full SHA-256 digest, or it was cut short on the way.
SHA-256 is the default cryptographic hash of the last two decades, and most of the time the reason to pick it is that everything else already has. It is in TLS certificates, package manifests, container digests, blockchain designs and signature schemes, so a SHA-256 value can be checked by any language, runtime or command line tool you are likely to meet.
The other reason is that 32 bytes is a convenient size. It is enough output that collisions are not a practical concern, and it fits neatly as a key, an identifier or a database column.
BLAKE3 and BLAKE2b are faster on modern hardware and equally suitable for new designs. SHA3 is built on a completely different internal construction, which is worth having available in case a weakness is ever found in the SHA-2 approach.
For authenticating a message with a shared key, use HMAC Generator rather than hashing the key and the message together yourself.
Warning
None of these hashes are for passwords. Password storage needs a deliberately slow, salted function, which is what Argon2id Hash Generator is for.
The same bytes always give the same digest, and changing a single bit is expected to change roughly half the output. That is what makes a hash useful for comparison and useless for recovering the input, which cannot be done at all.
Full SHA-256 is susceptible to length extension: given a digest and the length of the input, someone can compute the digest of that input plus a suffix without knowing the original. It does not matter for ordinary fingerprinting, and it is exactly why you use HMAC instead of a bare hash when a secret is involved.
Find similar tools by category or tag.