bitlvl
EN

Hash generator

Type text or drop a file and get all five digests at once. Add a key for HMAC. Paste an expected value to check a download. Everything is computed on your device.

Or drop a file, or

What a hash is

A cryptographic hash turns any input into a fixed-size fingerprint. Change one bit of the input and the whole output changes; given an output, there is no practical way back to the input; and it is infeasible to find two inputs with the same hash (for the algorithms that are still secure). That makes hashes useful for verifying downloads, detecting changes, deduplicating data and, with a salt and a slow algorithm, storing passwords.

AlgorithmOutputStatusUse today
MD5128 bits (32 hex)Broken: collisions are trivialLegacy checksums, cache keys. Never for security.
SHA-1160 bits (40 hex)Broken: collisions demonstrated (2017)Git object IDs (being replaced). Not for signatures.
SHA-256256 bits (64 hex)SecureThe default: TLS, code signing, download checksums, Bitcoin.
SHA-384384 bits (96 hex)SecureWhere a larger margin is wanted; subresource integrity.
SHA-512512 bits (128 hex)SecureFaster than SHA-256 on 64-bit CPUs; Linux password hashes (sha512crypt).

HMAC

An HMAC mixes a secret key into the hash in a specific way (RFC 2104) so that only someone with the key can produce or check the value. It is the mechanism behind HS256 JWTs, webhook signatures (GitHub, Stripe), AWS request signing and TOTP codes. Plain hash(key + message) is not safe for this; HMAC exists to fix the length-extension weakness of that construction.

Verifying a download

  1. Find the published checksum on the download page (often a SHA256SUMS file).
  2. Drop the downloaded file here, or run sha256sum file in a shell.
  3. Paste the published value in the compare box. A match means the file is byte-for-byte what was published.

A matching hash proves integrity, not authenticity: if an attacker can change the file they can change the checksum next to it. For authenticity you need a signature (GPG, Sigstore, minisign).

Passwords

Do not store passwords as SHA-256 hashes. Fast hashes can be guessed at billions per second on a GPU. Use a slow, salted, memory-hard function designed for the job: Argon2id, scrypt or bcrypt.

Questions

Which hash should I use?

SHA-256 unless you have a specific reason otherwise. It is secure, universally supported and fast. SHA-512 is a little faster on 64-bit hardware. MD5 and SHA-1 are fine only for non-security uses such as cache keys.

Can a hash be decrypted?

No. A hash is not encryption; there is no key and no inverse. What attackers do instead is guess inputs and compare hashes, which works for short or common inputs (hence rainbow tables) and is why passwords need salts and slow hashes.

Why is my MD5 different from the one on the website?

Usually line endings (CRLF versus LF), a trailing newline, or a different text encoding. Hash the exact bytes: for a file, use the drop zone rather than pasting its contents.

Is the SHA-256 computed here the same as sha256sum?

Yes, byte for byte. The tool uses the browser's WebCrypto implementation for the SHA family. For text input the bytes are the UTF-8 encoding of what you typed.

Is my file or password sent anywhere?

No. Hashing is done locally by JavaScript. The site has no server-side component that could receive it.