Hash generator

Compute SHA-1, SHA-256, SHA-384 or SHA-512 of any text, in your browser, using the native Web Crypto API.

Type or paste text to get its cryptographic hash. The tool uses the browser’s built-in SubtleCrypto.digest(), so the work happens locally and your input is never sent anywhere.

↳ Runs entirely in your browser. Nothing you type here is sent to us or anyone else.

What a cryptographic hash is

A hash function turns any input into a fixed-length “fingerprint”. The same input always produces the same hash; a tiny change produces a completely different one; and you can’t reverse the hash back into the input. That makes hashes ideal for checking that a file or message hasn’t changed.

Which algorithm to use

Algorithm Output Use it for
SHA-256 256-bit The sensible default for integrity checks
SHA-512 512-bit When a longer digest is required
SHA-1 160-bit Legacy only — broken for security, avoid for anything new

For storing passwords, plain hashes are the wrong tool — use a purpose-built password hash such as Argon2 or bcrypt, which are deliberately slow and salted.

Common uses

Verifying downloaded ISOs and packages, spotting whether two files differ, generating cache keys, and confirming a copied file arrived intact.

Verifying a download on Linux

Most projects publish a checksum file. To verify:

sha256sum -c SHA256SUMS
# or compare a single file:
sha256sum debian-13.iso

Compare the printed hash against the one on the project’s website (over HTTPS). If they differ, don’t use the file.

Frequently asked questions

Can I hash a file with this tool?

This tool hashes text you paste in. To hash a file, use your terminal u2014 for example sha256sum filename on Linux u2014 which also keeps the file on your own machine.

Should I use a hash to store passwords?

No. Use a slow, salted password hash like Argon2id or bcrypt. General-purpose hashes such as SHA-256 are too fast for that job.

Is SHA-1 safe?

Not for security. Practical collision attacks exist, so avoid SHA-1 for signatures or integrity guarantees; it survives only in legacy interoperability cases.