Hash Generator: SHA-256, SHA-3, BLAKE3, MD5

Hash text or files with MD5, SHA-1, SHA-2, SHA-3, Keccak-256, BLAKE2, BLAKE3, RIPEMD-160 or CRC-32, make HMACs, and check files against checksums.

0 bytes

Algorithms

Hashes of an empty input

How to use the hash generator

Type or paste text, or switch to File and choose or drop files. Tick the algorithms you want; each result shows in hexadecimal and in Base64. Text is hashed as UTF-8, so it matches sha256sum run on a UTF-8 file with the same content. Set Input is to Hex bytes or Base64 to hash raw bytes instead. Files are read in 4 MB pieces in a background worker, so large files keep the page responsive; nothing is uploaded.

Several files give a table and a checksum list in the sha256sum format (hash name) to copy or download; sha256sum -c accepts it. Paste an existing SHA256SUMS or MD5SUMS list into the compare box to check every file at once.

To check a download, paste the published checksum into Compare with expected hash. The page names the algorithm that matches, and ticks it if it was hidden. Besides a bare value it reads sha256sum and b3sum lines (hash filename), the BSD format SHA256 (file) = hash, OpenSSL output, PowerShell’s Get-FileHash, certutil, 0x-prefixed Ethereum hashes and Subresource Integrity values such as sha384-oqVu….

The algorithms

Algorithm Output Standard Use it for
SHA-224 to SHA-512 224–512 bits FIPS 180-4 checksums, signatures, SRI
SHA3-224 to SHA3-512 224–512 bits FIPS 202 a SHA-2 alternative with a different design
SHAKE128, SHAKE256 any length FIPS 202 variable-length output
Keccak-256 256 bits original Keccak Ethereum addresses and function selectors
BLAKE2b, BLAKE2s 512, 256 bits RFC 7693 fast hashing, keyed MACs
BLAKE3 256 bits or more BLAKE3 spec very fast checksums (b3sum)
RIPEMD-160 160 bits ISO/IEC 10118-3 Bitcoin addresses
MD5, SHA-1 128, 160 bits RFC 1321, FIPS 180-4 legacy checksums only
CRC-32, CRC-32C 32 bits zip/PNG; iSCSI detecting accidental corruption

Keccak-256 is not SHA3-256. Ethereum adopted Keccak before NIST changed its padding, so the two give different results: the empty string is c5d2460186f7… in Keccak-256 and a7ffc6f8bf1e… in SHA3-256. For SHAKE and BLAKE3 you can set the output length in bits; a shorter output is the start of a longer one.

SHA-1, SHA-256, SHA-384 and SHA-512 come from the browser’s Web Crypto API. The others are implemented on this page and checked against the NIST, RFC 7693 and BLAKE3 test vectors and Python’s hashlib. CRCs are shown most significant byte first (cbf43926 for 123456789), the form crc32 tools print; the Base64 form matches Google Cloud Storage’s crc32c value.

HMAC and keyed hashes

Enter a key to turn the hashes into message authentication codes: HMAC (RFC 2104) for MD5, SHA-1, SHA-2, SHA-3 and RIPEMD-160, and the built-in keyed modes of BLAKE2 (key up to 64 or 32 bytes) and BLAKE3 (exactly 32 bytes). The key can be text, hex or Base64. HMAC-SHA-256 is what webhooks from services like GitHub and Stripe sign with, so you can recompute a signature by hand.

Which hash to use

Any of them spots a corrupted download; use the one the publisher lists. When someone might swap the file on purpose, use SHA-256, SHA-3 or BLAKE3: MD5 and SHA-1 collisions can be made deliberately, and a CRC is not cryptographic at all. None of these is fit for storing passwords, because they are designed to be fast; use Argon2id, scrypt or bcrypt.

Why a hash might not match

Frequently asked questions

Is my text or file uploaded anywhere?

No. The hashes are calculated in your browser, partly with the Web Crypto API and partly with JavaScript on this page. Your text, keys and files never leave your device, and nothing is stored.

Why does my SHA3-256 hash differ from the Keccak-256 in Ethereum?

Ethereum uses the original Keccak submission, which pads the message differently from the final SHA-3 standard (FIPS 202). Both are shown here; pick Keccak-256 for Ethereum.

Why is my hash different from the one my terminal prints?

Usually because echo adds a newline. echo "hello" | md5sum hashes six bytes, not five. Run printf '%s' "hello" | md5sum instead, or hash the file itself here.

How large a file can I hash?

Hundreds of megabytes work on a typical computer. SHA-1, SHA-256, SHA-384 and SHA-512 need the whole file in memory for Web Crypto; the other algorithms read it piece by piece, so with only those ticked there is no size limit beyond your patience.

Can a hash be decrypted back to the original text?

No. A hash is a one-way fingerprint, not encryption. Short or common inputs can still be found by guessing and comparing, which is why unsalted fast hashes must never protect passwords.