Hash Generator — MD5, SHA-1, SHA-256 and more
Generate checksums in six algorithms, with a clear note on which are safe for what.
Free and instant — results appear in seconds. No sign-up, no limits, and nothing you type is stored.
A hash maps input of any length to a fixed-length output, deterministically and irreversibly. The same input always produces the same digest; a single changed character produces a completely different one.
Which algorithm to use depends entirely on the purpose, and the answer for passwords is none of these.
The avalanche effect
Two nearly identical inputs:
"hello" → SHA-256: 2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b9824
"hellp" → SHA-256: 9c3d5f4e83a4bbeb64d0f4b8dd2eff8ec49ea70ca6c9d0f5f5f6b9b8bd7f7ec9One letter changed and the digests share nothing. This is deliberate — it means a hash cannot be used to infer how close a guess was, and it means any tampering with a file changes the checksum completely rather than partially.
It is also why hashes work as integrity checks. Download a file, hash it, compare against the published digest. Match means the bytes are identical; mismatch means something changed, whether through corruption or interference.
What the avalanche effect does not provide is protection for passwords. Because hashing is fast and deterministic, an attacker with a leaked table of SHA-256 password hashes can test billions of candidates per second on commodity hardware.
Which algorithm, for what
MD5 — broken for security. Collisions can be produced on demand. Still acceptable as a corruption checksum where nobody is attacking you.
SHA-1 — also broken; practical collisions have been demonstrated. Being removed from certificate and signature use everywhere.
SHA-256 and above — the current standard for integrity and digital signatures. No practical attacks.
CRC32 — not a cryptographic hash at all. An error-detection code. Fast, tiny, trivially forged.
Never hash passwords with these
All of the above are designed to be fast, which is exactly wrong for passwords. Speed is the attacker's advantage.
Password hashing needs a deliberately slow, salted, memory-hard function: bcrypt, scrypt, or Argon2. In PHP, password_hash() handles algorithm choice, salting and cost factor for you, and password_verify() checks. Use those and nothing else.
A salt — random per-password data mixed in before hashing — is what prevents one precomputed table from cracking every account at once. password_hash() generates and stores it automatically.
Legitimate uses
- Verifying a downloaded file matches its published checksum
- Detecting whether a file has changed, for caching or sync
- Generating deterministic cache keys and ETags
- Deduplicating content by digest
- Signing data, with SHA-256 or above
Frequently asked questions
Can a hash be reversed?
Not mathematically — the function discards information. But common inputs can be looked up in precomputed tables, so hashing a short or predictable string offers no secrecy. Rainbow tables cover essentially every unsalted common password.
Is MD5 still safe to use?
Not for anything security-related. Collisions can be generated on demand, so an MD5 digest cannot prove a file has not been substituted. It remains adequate as a checksum for detecting accidental corruption where no attacker is involved.
How should I hash passwords?
Not with any algorithm on this page. Use bcrypt, scrypt or Argon2 — functions deliberately designed to be slow and memory-hard. In PHP, password_hash() and password_verify() handle the algorithm, salting and cost factor correctly.
What is a salt and why does it matter?
A salt is random data unique to each password, mixed in before hashing. Without it, identical passwords produce identical hashes and one precomputed table cracks every account at once. Proper password hashing functions generate and store the salt automatically.
Reviews
No reviews yet. If this tool solved something for you, yours would be the first — and it helps other people decide whether it is worth their time.
