Hash Generator & Checker

A tool that computes MD5, SHA-1, SHA-2 (SHA-224/256/384/512), SHA-3, Keccak-256, BLAKE2b/BLAKE2s, BLAKE3, RIPEMD-160, CRC32, and xxHash64 hashes from text or a file, right in your browser. It supports drag-and-drop file input and can check whether a hash matches an expected value.

MD5, SHA-1, SHA-2

MD5

-

SHA-1

-

SHA-224

-

SHA-256

-

SHA-384

-

SHA-512

-

SHA-3, Keccak

SHA3-224

-

SHA3-256

-

SHA3-384

-

SHA3-512

-

Keccak-256

-

BLAKE

BLAKE2b-512

-

BLAKE2s-256

-

BLAKE3

-

Other & checksums

RIPEMD-160

-

CRC32

-

xxHash64

-

How to use

  1. Type text, or drag and drop a file (or click "Choose file").
  2. MD5, SHA-2, SHA-3, BLAKE, CRC32, and other hashes are computed in real time and listed by family.
  3. Each hash can be copied to the clipboard with its copy button.
  4. Paste an "expected" hash value published by a distributor into the input field, and the matching row shows "Match" while a mismatched row shows "Mismatch". A summary also tells you which algorithm matched.

About this tool

This tool computes 17 hashes, including MD5, SHA-1, SHA-2, SHA-3, BLAKE2, BLAKE3, RIPEMD-160, CRC32, and xxHash64, from text or a file, right in your browser. It's useful for detecting tampering in a downloaded file, checking it against a published checksum, or verifying how an API key is hashed or an Ethereum address is derived (Keccak-256). For password storage hashes such as Argon2id and bcrypt, use the Password Hash Generator & Verifier tool.

SHA-1, SHA-256, SHA-384, and SHA-512 are computed using the browser's standard Web Crypto API (SubtleCrypto). MD5 isn't implemented in the Web Crypto API for security reasons, so a verified pure JavaScript implementation is used instead. SHA-224, SHA-3, BLAKE, RIPEMD-160, CRC32, and xxHash64 aren't in the Web Crypto API either, so they're computed with a WebAssembly implementation (hash-wasm).

Even large files can be processed as long as your browser's memory allows it. File contents are never sent to a server.

For abc without a newline, SHA-256 is ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad. Paste that value into the expected-hash field to get a match on the SHA-256 row. Adding a trailing newline changes the bytes and produces a mismatch.

Text is hashed as UTF-8 bytes, while file mode uses the file's actual contents. Different text encodings or line endings can therefore produce different hashes for visually identical text. When a comparison fails, check the stored input format as well as the algorithm.

Frequently asked questions

I've heard MD5 and SHA-1 aren't secure anymore. Is it okay to use them?

MD5 and SHA-1 are known to be vulnerable to collision attacks and aren't recommended for security-critical uses like password storage or signatures. But for purposes like checking file integrity against a checksum in the format a distributor provides, they're fine to use with this tool.

Won't a case difference cause a match to fail?

No. Comparison against the expected value ignores case and surrounding whitespace, so differences like "ABCDEF" vs. "abcdef" are treated as a match.

Can I hash a file and text at the same time?

No. Dropping or selecting a file switches the input to the file's contents. To go back to text, click "Back to another input".

Why are SHA3-256 and Keccak-256 different?

Keccak-256 is the original Keccak before it was standardized as SHA-3; only the padding rule differs from SHA3-256. Ethereum and Solidity's keccak256 use it, so both are shown.

Is my input file or text sent to a server?

No. Hash computation all happens in your browser using the Web Crypto API, JavaScript, and WebAssembly.