Skip to content

Developer Tools

Hash Generator

Generate cryptographic hashes of any text using SHA-1, SHA-256, SHA-384 and SHA-512. Computed in your browser with the Web Crypto API — nothing is sent anywhere.

Developer Tools · Hash GeneratorRuns in your browser

How to generate SHA hashes of a text

  1. Type or paste into the Text to hash box. It opens with the sample text 'Hello, All Day Toolkit!' so you can see what a result looks like.
  2. Click Generate hashes. The button reads 'Hashing…' for a moment while the four digests are computed in parallel.
  3. Read the SHA-1, SHA-256, SHA-384 and SHA-512 rows, each with its own Copy button that shows a tick for just over a second after clicking.
  4. Edit the text and click Generate hashes again. The results are not recalculated as you type, so an old hash stays on screen until you click.

How the digests are computed

The text is first encoded to UTF-8 bytes with TextEncoder, then passed to crypto.subtle.digest, the SubtleCrypto part of the Web Crypto API that ships in every modern browser. The resulting bytes are printed as lowercase hexadecimal, two characters per byte. All four algorithms run on every click, so there is no algorithm picker to set.

AlgorithmDigest sizeHex charactersStanding today
SHA-1160 bits40Collisions demonstrated in 2017; fine for checksums, not for signatures
SHA-256256 bits64The default choice for new systems
SHA-384384 bits96Truncated SHA-512; used in some TLS suites
SHA-512512 bits128Fastest of the four on 64-bit CPUs for long input

Worked example: the sample text

Click Generate hashes without changing anything and you should see exactly these values. Any difference means the text was altered, for example by a trailing space.

AlgorithmOutput
SHA-158cfccfa3442d22db4402a97ba7c671382052850
SHA-256e4017eeef1529a0155b9c320cb641087779a1b93efe6af4d170e229c01212e63
SHA-3843c7f411ed0bdd565271a6e6cc74cb90d062ff4fe0964be6dca8b29c5ab92310f5bfa08e2a4b3e37aa8189d6a693d5d46
SHA-512649e28a16fb2abde0270830e30d03d446c4331926ba055fd5b9648f6f393325d8b533aa00f98cf01b3cd69ed204e8145619699da796efc197302d0b99c621c3a

Digests of the default text 'Hello, All Day Toolkit!'

Why one character changes everything

A good hash function has the avalanche property: flipping a single input bit changes about half the output bits. The SHA-256 of hello is 2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b9824, while Hello with a capital H gives 185f8db32271fe25f561a6fc938b2e264306ec304eda518007d1764826381969. The two share nothing recognisable.

Invisible characters count too. Adding a line break after hello produces 5891b5b522d5df086d0ff0b110fbd9d21bb4fc7163af34d08286a2e846f6be03. This is the usual reason a hash computed here fails to match one from a command line: echo appends a newline unless you pass -n. The hash of an empty box is also well defined; SHA-256 of nothing is e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855.

What this hash tool cannot do

  • MD5 is not offered. SubtleCrypto has never implemented it, and the widget includes no JavaScript fallback, so an MD5 checksum from an old download page cannot be reproduced here.
  • Files cannot be hashed. Only the characters in the text box are hashed, so pasting the contents of a file hashes that text as UTF-8, which only matches the file's checksum if the file is plain UTF-8 text with identical line endings.
  • Windows line endings are normalised. A textarea converts CR LF pairs to LF, so text copied from a Windows file hashes differently from the file on disk.
  • There is no HMAC, no salt and no key input, and no password-hashing functions such as bcrypt or Argon2. Plain SHA-256 is the wrong tool for storing passwords.
  • Output is lowercase only. Many tools print uppercase hex; compare case-insensitively.

Reading a hash you have been given

The length of a hex digest tells you which algorithm made it: 32 characters is MD5, 40 is SHA-1, 64 is SHA-256, 96 is SHA-384 and 128 is SHA-512. To check a value against this tool, paste the exact original text, generate, and compare the row of matching length. For verifying a downloaded file, use your operating system instead: certutil -hashfile on Windows, shasum -a 256 on macOS or sha256sum on Linux, because those read the raw bytes.

Frequently asked questions

Which hash algorithms are supported?

SHA-1, SHA-256, SHA-384 and SHA-512, all computed locally with the browser's built-in Web Crypto API. (MD5 isn't included because it isn't part of Web Crypto and is considered insecure.)

Is my input sent anywhere?

No. Hashing happens entirely in your browser, so the text you enter never leaves your device.

Why is my hash different from the one another site produced?

Almost always because the input bytes differ: a trailing newline or space, Windows versus Unix line endings, a different Unicode form of an accented letter, or the other tool hashing bytes of a file rather than UTF-8 text.

Can I hash a file here?

No. The widget takes text only. Use sha256sum, shasum -a 256 or certutil -hashfile for files, which hash the raw bytes on disk.

Does the output update while I type?

No. Hashes are only computed when you click Generate hashes, so after editing the text the rows on screen belong to the previous input until you click again.

Why is SHA-1 still included if it is weak?

Because many older systems, Git object IDs among them, still identify data by SHA-1. It remains fine for spotting accidental changes; it is only unsafe where an attacker could craft a colliding input.

Explore

113 tools. Zero uploads. One place.

Every tool opens instantly, works on your phone and keeps your files on your device.

Hash Generator guides