MD5 hash generator online — with salt

Type any text and get its 32-character MD5 digest immediately, salted or unsalted, in lowercase, uppercase or Base64. SHA-1, SHA-256 and RIPEMD-160 are computed alongside so you can compare formats. Everything happens in your browser — no upload, no logging, no rate limits.

{{ meta }}
MD5 hash {{ saltFlag }}
{{ main }}
{{ row.algo }} {{ row.value }}

What is an MD5 hash?

MD5 (Message-Digest Algorithm 5) was designed by Ronald Rivest in 1991 and specified in RFC 1321. It reads input in 512-bit blocks and mixes them through four rounds of 16 operations into a 128-bit state, which is printed as 32 hexadecimal characters. The digest is fixed-length regardless of input size, deterministic, and extremely fast to compute — a laptop hashes hundreds of megabytes per second.

A tiny change in input produces a completely different digest — the avalanche effect. Hashing hello gives 5d41402abc4b2a76b9719d911017c592, while Hello gives an unrelated value. Try it in the tool above.

"MD5 decrypt" — what it really means

MD5 is not encryption, so it cannot be decrypted. Hashing throws information away: a one-gigabyte file and a five-letter word both collapse to 128 bits, so infinitely many inputs map to any given digest. There is no key and no inverse function.

What "MD5 decrypter" sites actually do is look the digest up in a giant table of hashes computed in advance from wordlists, leaked password dumps and character sweeps. If your input was password123, it is in every one of those tables. If it was a 16-character random string, or anything combined with a unique salt, it is not — and no amount of querying will produce it. That asymmetry is the entire practical difference between a weak and a strong secret.

Do not use MD5 for passwords Collision attacks against MD5 have been practical since 2004 and cost seconds of compute today. Even with a unique salt, a single modern GPU tests tens of billions of MD5 candidates per second. Use bcrypt, scrypt or Argon2 for anything that protects an account.

Where MD5 is still legitimate

  • Accidental-corruption checks. Verifying that a download or backup transferred intact, where nobody is deliberately forging the file.
  • Cache keys and deduplication. Short, fast, evenly distributed fingerprints for identifying repeated content.
  • Change detection in ETL pipelines. Comparing a row digest to decide whether a record needs re-processing.
  • Legacy interoperability. Talking to an old API or vendor system that specifies MD5 request signatures you cannot change.

For anything where an attacker benefits from forging a match — software distribution, certificates, tamper-evident logs — use SHA-256 instead.

Generating MD5 in code

# Linux / macOS terminal
echo -n "hello" | md5sum          # Linux
md5 -s "hello"                    # macOS

# Node.js
crypto.createHash('md5').update('hello').digest('hex');

# Python
hashlib.md5(b'hello').hexdigest()

# PHP
md5('hello');

# SQL (MySQL)
SELECT MD5('hello');

If a command-line result differs from this tool, check for a trailing newline: echo without -n appends one byte and changes the digest completely. Encoding matters too — this tool hashes UTF-8 bytes.

Digest lengths at a glance

Algorithm Bits Hex characters Collision status
MD512832Broken (seconds)
SHA-116040Broken (2017)
RIPEMD-16016040No practical attack
SHA-25625664Secure

MD5 FAQ

{{ f.q }}

{{ f.a }}

Related tools

SHA-256 generatorThe modern replacement for MD5 checksums bcrypt generatorWhat to use for passwords instead Password strength checkerSee how fast MD5 falls to a GPU