Skip to content
HexSlate

Hash Generator

Text to hash0 B

Optional. Paste the digest from a download page, or the whole line from a checksum file. The algorithm is worked out from its length.

No digests yet

Type some text or choose a file, and every ticked algorithm is computed at once.

0 code units0 B as UTF-8

Can an MD5 hash be reversed or decrypted?

No, and neither can any site claiming to. A hash throws information away: a single character and a 50 GB disk image both produce 128 bits of MD5, so billions of inputs map to the same digest and the original is not recoverable even in principle. A "hash decrypter" is a lookup table precomputed for common passwords, which is why a per-user salt defeats it.

Is MD5 broken? Is SHA-1?

Both are broken against an attacker and both are still fine as checksums. MD5 fell to a practical collision in 2004; SHA-1 in 2017, when Google and CWI Amsterdam published SHAttered, two PDFs with the same digest. Neither has a practical preimage attack, so nobody can take an existing file and forge a different one matching it, and a download matching a published MD5 is almost certainly intact. For signatures, certificates or anything where an attacker chooses the input, use SHA-256 or better.

Never store passwords with these

SHA-256 is the wrong tool for a password database because it is too fast: a modern GPU computes billions per second, which is the rate a stolen table of unsalted hashes is cracked at. Password storage wants a slow, memory-hungry function: Argon2id, scrypt or bcrypt, each with a per-user salt and tuned so one verification takes a noticeable fraction of a second.

Two that are not what they look like

SHA-384 is SHA-512 truncated to 48 bytes, and that truncation is what resists the length-extension attack full SHA-256 and SHA-512 are open to. CRC32 is not a cryptographic hash at all, just the error-detecting code inside zip, gzip and PNG chunks: it catches accidental corruption reliably and a deliberate change not at all, since a chosen collision is arithmetic rather than brute force.

Common problems

  • The command line gives a different digest. Almost always a trailing newline: echo hello | md5sum hashes six bytes, not five. Use printf %s hello | md5sum.
  • The same file hashes differently on Windows and Linux. CRLF endings carry an extra byte per line, and Git's autocrlf rewrites them on checkout, so the file on disk is not the file in the repository. A UTF-8 BOM does the same.
  • Non-ASCII text hashing differently elsewhere. A hash is over bytes, so the encoding decides the answer. This page uses UTF-8; a tool using UTF-16 or Latin-1 gives a different digest for the same visible text.

Frequently asked questions

What is the difference between hashing and encryption?

Encryption is two-way and keyed. Hashing is one-way and keyless, giving a fixed-length fingerprint for comparing rather than recovering. If you need the data back, you want encryption.

Is my file uploaded anywhere?

No, it is read and hashed on your machine with no network request. What you hash also stays out of the URL, since this box gets passwords and API keys pasted into it and a query string ends up in browser history and the Referer header.

Which algorithm should I use for a checksum?

SHA-256 unless something else dictates the choice. It is fast, it is everywhere, and no practical collision exists. MD5 and SHA-1 are still fine for detecting accidental corruption, which is why downloads still publish them, but neither survives an attacker who wants two files to match.

Why is CRC32 in a hash tool?

Because it answers a different question, and people arrive needing it. CRC32 is an error-detecting code, not a hash: 32 bits, trivially collided on purpose, and built to catch transmission damage. ZIP archives and PNG chunks use it for exactly that. Never use it where you mean a hash.