Hash Generator

Compute MD5, SHA-1, SHA-256, SHA-384, SHA-512, SHA-3, Keccak-256, RIPEMD-160, BLAKE2b or BLAKE2s digests of any text or file — handy for checksums, integrity checks, and cache keys. Paste an expected digest to verify it against your input, or paste an unknown hash string to identify which algorithm it probably came from. SHA-1/256/384/512 come from your browser’s native WebCrypto; the rest are self-contained pure-JavaScript implementations, so everything runs locally. Also see the Random Number Generator for seeded random sequences.
Runs entirely locally — nothing is uploaded. Inputs up to 200 MB.
Input: Algorithms:
Output format: SHA-1 is legacy — prefer SHA-256/512 unless you need it.
Digest lines use the form “ALGORITHM  hash” so you can copy them into release notes or download manifests.
Paste the digest a download page or manifest gave you. The tool tolerates case, spaces, colons, sha256=-style prefixes, MD5 (file.exe) =-style wrappers and multi-line md5sum output, then compares it with the algorithms you have ticked above.
Paste an unknown hash string. The tool reads its length, character set and prefixes, and lists the algorithms that could have produced it — from a plain hex digest to PHC-style password hashes such as $2b$… or $argon2id$….
Choosing an algorithm:
SHA-256 is the sensible default for integrity checks today. SHA-512 is stronger and runs faster on 64-bit hardware, at the price of longer output; SHA-384 is the middle option when you need a SHA-2 digest with truncated length. SHA-3 is an independently designed NIST standard (not a SHA-2 upgrade) and is the standard answer when you want an algorithm with no shared lineage with SHA-2; Keccak-256 is the pre-standard variant used by Ethereum and a few other systems, and differs from SHA3-256 in one padding byte. BLAKE2b/BLAKE2s are fast modern hashes designed for software use; RIPEMD-160 is an older design still used in Bitcoin and OpenPGP contexts. SHA-1 and MD5 are cryptographically broken for hostile inputs but remain correct and widely used for deduplication, legacy systems, and non-adversarial checksums — never use them where an attacker could choose the content. No hash today is “post-quantum resistant” in the sense quantum computers threaten signatures and key exchange first — Grover’s algorithm only halves effective hash length, so SHA-256 already sits comfortably above the practical bound. Hashes are deterministic: the same bytes always produce the same digest, which is exactly what makes them useful for verifying that a download or config file is intact.
Looking for the Chinese national hash?
SM3 (GB/T 32905-2016), the digest mandated in Chinese commercial cryptography, is not part of this page — it has its own tool with HMAC-SM3 support on the SM3 Hash Generator page, alongside the rest of the SM suite: SM4 (block cipher), SM2 (signatures and encryption) and SM9 (identity-based cryptography).
Hash Generator — every algorithm explained from scratch
In one sentence: a cryptographic hash function is a one-way blender — it takes any number of bytes and squeezes them into a fixed-length fingerprint such that the same input always gives the same fingerprint, yet the fingerprint tells you nothing about how to rebuild the input. This page runs eleven of them entirely inside your browser tab.

Every algorithm below is explained in the same four steps: what it is in plain words, the intuition of how it works without any formulas, whether you should still use it today, and the mistakes people most often make with it.

MD5

What it is. MD5 (1992) compresses any input into a 128-bit (32 hex characters) fingerprint. It was designed to be fast on the computers of the 1990s, and it is — which is exactly why it is still everywhere: software download pages, file deduplication caches, legacy database keys.

How it works, intuitively. The input is cut into 64-byte chunks. Each chunk is stirred into a 128-bit rolling state four times over (four slightly different mixing rounds), and after the last chunk the state is printed as the digest. The stirring is built from additions, rotations and table lookups — cheap then, cheap now.

Should you use it? For checksums where nobody is trying to cheat you — detecting a corrupted download, finding duplicate files — yes, it still reports corruption perfectly. For anything adversarial, no: since 2004 researchers can craft two different files with the same MD5 in seconds, and real certificate forgeries using MD5 collisions happened in 2008. Treat it as a serial number, not a lock.

Common mistakes. Using MD5 for passwords (far too fast — see the Password Hash Generator for what belongs there instead); trusting a file because “the MD5 matches” when the attacker also published the MD5; and pasting the whole MD5 (file) = hash line instead of just the hash — the Verify box above accepts both.

SHA-1

What it is. SHA-1 (1995, NSA) produces a 160-bit (40 hex characters) digest. For twenty years it was the default integrity hash of Git, TLS certificates and PGP signatures.

How it works, intuitively. Same family recipe as MD5 but with a 160-bit state, 80 mixing rounds per 64-byte chunk, and a wider set of operations. The extra rounds were meant to make the blender harder to reverse-engineer.

Should you use it? No, for anything adversarial. The theoretical break became practical in 2017 when Google produced two different PDFs with identical SHA-1 values (the SHAttered attack, at ~6500 CPU-years). Git still stores objects under SHA-1 but treats it only as an identifier, and has since added collision detection. For new work use SHA-256 or SHA-3.

Common mistakes. Believing 160 bits “is still long enough” — the break is about the internal structure, not brute force; and mixing up RIPEMD-160 with SHA-1 because both are 40 hex characters long (the identifier box above distinguishes them).

SHA-2: SHA-256, SHA-384 and SHA-512

What it is. The SHA-2 family (2001, NSA) is the workhorse of modern integrity checking. SHA-256 gives 256 bits (64 hex characters), SHA-512 gives 512 bits, and SHA-384 is SHA-512 with the result cut to 384 bits — useful when a protocol mandates a shorter tag.

How it works, intuitively. Chunks of 64 bytes (or 128 bytes for the 512-bit variants) are folded into an 8-word state through 64 (or 80) rounds of add-rotate-mix steps. Unlike MD5 the schedule first stretches each chunk into an expanded buffer, which is what defeated the style of attack that broke MD5 and SHA-1. A curiosity worth knowing: on 64-bit CPUs SHA-512 is faster than SHA-256, because it processes twice the data per round with 64-bit arithmetic.

Should you use it? Yes — SHA-256 is the default answer for file checksums, code signing and certificate fingerprints today, with no practical break known after two decades of analysis. Use SHA-384/512 when you want more margin or when the platform runs them faster.

Common mistakes. Using SHA-256 alone for passwords — it is a fast hash, and speed is the enemy there (use bcrypt/scrypt/Argon2id); and confusing the digest length with strength for adversarial collision resistance settings — the length only sets the ceiling.

SHA-3 (SHA3-256 / SHA3-512) and Keccak-256

What it is. SHA-3 (2015, standardized from the Keccak submission by Bertoni, Daemen, Peeters and Van Assche) is the third NIST hash standard. It shares nothing with the SHA-2 internals — it was selected precisely to be an independent backup in case SHA-2 ever falls.

How it works, intuitively. Instead of stirring chunks through a small state, Keccak repeatedly “soaks and squeezes”: the input is absorbed bit by bit into a 5×5×64-bit sponge, the whole sponge is scrambled by a fixed permutation (24 rounds of bitwise operations over the entire state), and digest bits are then squeezed out. The sponge picture is the whole idea: capacity bits are never output, and they are what makes the function one-way.

Keccak-256 vs SHA3-256. They differ in exactly one padding byte. The Keccak team’s original submission padded the last block with 0x01; NIST changed the standard padding to 0x06 (domain separation with SHA-2-era Keccak uses). Ethereum adopted the original padding, so its “keccak256” differs from standard SHA3-256 for every input. This page offers both, ticked separately.

Should you use it? Yes — either as your primary choice when policy wants a non-SHA-2 algorithm, or wherever the ecosystem already speaks it. Common mistakes: assuming SHA3-256 and Keccak-256 are interchangeable (they are not — compare the two rows this page produces for the same input); and assuming “SHA-3” supersedes SHA-2 — both are secure, SHA-2 remains the more widely deployed one.

RIPEMD-160

What it is. RIPEMD-160 (1996, the RIPE consortium of European academics, strengthened by Dobbertin, Bosselaers and Preneel) outputs 160 bits. It is an entirely European design, deliberately independent of the NSA-designed SHA family.

How it works, intuitively. Each 64-byte chunk is processed by two parallel lines of 80 rounds with different constants and rotation amounts; at the end the two lines and the old state are combined. The two-track structure was the designers’ way to resist the differential attacks that were breaking other 1990s hashes.

Should you use it? In practice it survives mainly inside other systems: Bitcoin addresses hash their public keys with RIPEMD-160(SHA-256(pk)), older OpenPGP keys offer it as a hash option, and it is the traditional hash for BitTorrent v1 pieces alongside SHA-1. It has no practical collision attack, but the 160-bit size gives it the smallest safety margin on this page. For new standalone use prefer SHA-256 or SHA-3.

Common mistakes. Believing the two parallel lines make it “twice as strong” — output size is what limits collision resistance; and confusing it with SHA-1 (same 40-hex-character length; the identifier box above lists both possibilities side by side).

BLAKE2b-512 and BLAKE2s-256

What it is. BLAKE2 (2013, Aumasson, Neves, Wilcox-O’Hearn and Winnerlein) is a hash designed for software speed: BLAKE2b targets 64-bit platforms with up to 512-bit output, BLAKE2s targets 32-bit platforms with up to 256-bit output.

How it works, intuitively. It descends from the SHA-3 finalist BLAKE, whose core is a keyed permutation borrowed from the stream cipher ChaCha: a 4×4 matrix of words is scrambled by alternating column and diagonal mixing steps — like shuffling a grid first top-to-bottom, then along the diagonals — for 12 (BLAKE2b) or 10 (BLAKE2s) rounds per chunk. Because those steps map beautifully onto CPU instructions, BLAKE2 is often faster than MD5 while offering security comparable to SHA-3.

Should you use it? Yes — it is a fully modern, unbroken design, popular in performance-sensitive software (package integrity in some ecosystems, content-addressed storage, backup deduplication) and as a fast MAC. On this page, BLAKE2b-512 gives the longest digests and BLAKE2s-256 the compact modern option.

Common mistakes. Thinking “faster must mean weaker” — BLAKE2 is faster by design, not by corner-cutting; and not realizing BLAKE2 also accepts a key (making it a MAC) or a personalization string — this page always uses it in plain unkeyed mode.

Reading the Verify and Identify boxes

Verify. The verify box normalizes whatever you paste — upper or lower case, colons every two digits, a sha256= prefix, the BSD-style SHA256 (file) = hash wrapper, a GNU md5sum line with the filename after the hash, stray \r\n — then recomputes every ticked algorithm over your current input (text or the chosen file) and reports each algorithm that matches. A green match means “these bytes are exactly what the publisher hashed”; red means none of the ticked algorithms produced it — try ticking more algorithms, or check whether the paste was truncated.

Identify. The identifier box does not hash anything; it reads the shape of the string. Length narrows the candidates: 32 hex characters could be MD5, 40 could be SHA-1 or RIPEMD-160, 64 could be SHA-256 / SHA3-256 / Keccak-256 / BLAKE2s-256, 96 SHA-384, 128 SHA-512 / SHA3-512 / BLAKE2b-512. Prefixes reveal password hashes ($2a$/$2b$/$2y$ bcrypt, $argon2id$, $scrypt$, $6$ sha512crypt, $1$ MD5-crypt) — those are a different species (see the Password Hash Generator) and are deliberately not computed by this page. A string with +, / and = whose length is a multiple of 4 is more likely Base64-encoded data than a hex digest; the tool decodes it and reports the byte length it would correspond to.

What identification can and cannot tell you. Length and character set are fingerprints of the format, not proof of the algorithm: two 64-hex-character strings may have come from SHA-256 or from truncated SHA-512. The identifier ranks possibilities; the Verify box is the one that proves which algorithm your bytes actually match.

All eleven in one glance
Algorithm Digest Invented Digest of “The quick brown fox jumps over the lazy dog”
MD5128 bit19929e107d9d372bb6826bd81d3542a419d6
SHA-1160 bit19952fd4e1c67a2d28fced849ee1bb76e7391b93eb12
SHA-256256 bit2001d7a8fbb307d7809469ca9abcb0082e4f8d5651e46d3cdb762d02d0bf37c9e592
SHA-384384 bit2001ca737f1014a48f4c0b6dd43cb177b0afd9e5169367544c494011e3317dbf9a509cb1e5dc1e85a941bbee3d7f2afbc9b1
SHA-512512 bit200107e547d9586f6a73f73fbac0435ed76951218fb7d0c8d788a309d785436bbb642e93a252a954f23912547d1e8a3b5ed6e1bfd7097821233fa0538f3db854fee6
SHA3-256256 bit201569070dda01975c8c120c3aada1b282394e7f032fa9cf32f4cb2259a0897dfc04
SHA3-512512 bit201501dedd5de4ef14642445ba5f5b97c15e47b9ad931326e4b0727cd94cefc44fff23f07bf543139939b49128caf436dc1bdee54fcb24023a08d9403f9b4bf0d450
Keccak-256256 bitpre-20154d741b6f1eb29cb2a9b9911c82f56fa8d73b04959d3d9d222895df6c0b28aa15
RIPEMD-160160 bit199637f332f68db77bd9d7edd4969571ad671cf9dd3b
BLAKE2b-512512 bit2013a8add4bdddfd93e4877d2746e62817b116364a1fa7bc148d95090bc7333b3673f82401cf7aa2e4cb1ecd90296e3f14cb5413f8ed77be73045b13914cdcd6a918
BLAKE2s-256256 bit2013606beeec743ccbeff6cbcdf5d5302aa855c256c29b88c8ed331ea1a6bf3c8812

Every digest in the table above is produced by the engines in this very page — tick all algorithms, click Sample, and compare. SHA-3, Keccak, RIPEMD-160 and BLAKE2 rows come from the self-hosted crypto-shared.js kernel used across this site’s crypto tools.

FAQ

Which box should I trust for a download? The Verify box, with SHA-256 ticked — most publishers sign SHA-256 or SHA-512 today. The Identify box only names candidates; it never proves anything about your file.

Why is Keccak-256 in the list at all? Because Ethereum, Swarm and a few ledger systems standardized on the pre-standard padding. If you verify an Ethereum keccak256 you must use that row, not SHA3-256.

Can two different inputs share a digest? In theory, yes — infinitely many inputs map into a finite set of digests (pigeonhole principle). In practice, finding such a pair before the heat death of the universe is what “collision resistance” is about, and every algorithm above except MD5 and SHA-1 still stands.

Are hashes encryption? No. Encryption is reversible with a key; a hash is a one-way blender. Nothing on this page can be “decrypted” back into your text — and that is a feature, not a limitation.