Hash
SHA-family digests are computed with the browser's built-in WebCrypto — no network needed, and the content never leaves your device.
Browser-native WebCrypto MD5 not offered(it's now considered insecure, and browser vendors removed support for it). If you need MD5, you have to bring in a third-party implementation; this site deliberately doesn't, to stay "zero third-party code".
When to use it
- You need the SHA-256 fingerprint of a piece of text — an API key, licence contents, a config snippet — to compare character by character against a checksum from an email or release page.
- One value has to be delivered in both formats: one system stores HEX, another API expects Base64, and a single run gives you both columns.
When not to
- You want to verify a downloaded installer, image or archive. This hashes only the UTF-8 text in the textarea and cannot read a binary file; use shasum -a 256, certutil -hashfile, or the checksum panel of your OS.
- The other side specifies MD5 (legacy API signatures, some CDN ETags, historical checksums). WebCrypto does not offer MD5 and this tool will not compute it; run md5sum or openssl dgst -md5 locally.
Digests are computed locally by the browser's WebCrypto; the input is never uploaded or logged. Limits: SHA-1/256/384/512 only, no MD5; input is UTF-8 text, so binary files and specific byte sequences cannot be hashed and there is no streaming; SHA-1 is no longer collision-resistant; no HMAC, no salting, and Base64 uses the standard alphabet rather than Base64URL.
Frequently asked
Why is there no MD5?
Because the browser does not provide it. WebCrypto's digest supports SHA-1/256/384/512 only; MD5 never entered the standard, and the non-standard support some browsers once had has since been removed. Hand-writing MD5 in JS is slow and puts correctness on us. More importantly, MD5 collisions are practical to construct, so it should not sign or verify anything. If you truly need it, use your local shell — md5sum, md5 or openssl dgst -md5 — rather than looking for a web substitute.
Can a hash be reversed?
No. A digest is one-way and fixed-length, so the original bytes are gone; the only route is guessing candidates and comparing. But not reversible is not the same as safe: enumerable inputs such as passwords, low-entropy secrets and phone numbers fall to rainbow tables, dictionaries and GPU brute force in a very short time. Store passwords with bcrypt, scrypt or Argon2 — salted and deliberately slow — because a bare SHA-256 is not a password hash.
Is SHA-1 still usable?
It depends on the job. Practical collisions can be constructed (SHAttered and later work), so signatures, certificates and tamper detection should never rely on it. Legacy identifiers such as Git object names still use it, but new designs should pick SHA-256. SHA-1 is offered here only to check historical checksums, which is not an endorsement. Like any unkeyed hash it also does not stop length-extension attacks — use HMAC when a key must be involved.