This tool turns text or a file into a fixed-length fingerprint called a hash or digest. It shows MD5, SHA-1, SHA-256, SHA-384 and SHA-512 together, so you can copy whichever one you need. The same input always gives the same hash, and any change to the input, even one character, gives a completely different one.
Hashes are used to check that a download arrived intact, to compare two files without opening them, and to sign API requests (with HMAC). SHA digests come from your browser's Web Crypto API. MD5 is not part of Web Crypto, so this page includes its own small implementation, tested against the official RFC 1321 vectors.
Everything runs on your device. Text and files are never uploaded.
Use SHA-256 for checksums and integrity checks, or SHA-512 if you want a longer digest. MD5 and SHA-1 are broken for security, since attackers can craft collisions, but they are still common for spotting accidental corruption and for matching the checksums that older downloads publish.
Choose File, drop the download, then paste the published hash into the compare field. The tool ignores case, spaces and a leading 0x, and tells you whether it matches one of the five digests. The matching row is highlighted so you can see which algorithm the publisher used.
HMAC mixes a secret key into the hash, so only someone with the same key can produce the same result. It is used to sign API requests and webhooks. Tick HMAC, enter the key as text, and every row switches to HMAC-MD5, HMAC-SHA-1 and so on. An empty key is not allowed.
Yes. Hashing runs entirely in your browser. SHA digests use the built-in Web Crypto API, and MD5 is a small script on this page. Nothing is uploaded, sent or stored.
There is no set limit, only the memory your browser has. The file is read in pieces with a progress bar, then hashed. Very large files, several gigabytes, may fail on devices with little memory; the tool says so instead of freezing.
Text is hashed as UTF-8 exactly as typed, including spaces and line breaks. A trailing newline, Windows line endings or a different encoding such as UTF-16 changes the result. If a command-line echo adds a newline, use echo -n, or hash the file instead.