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.
How to generate SHA hashes of a text
- 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.
- Click Generate hashes. The button reads 'Hashing…' for a moment while the four digests are computed in parallel.
- 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.
- 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.
| Algorithm | Digest size | Hex characters | Standing today |
|---|---|---|---|
| SHA-1 | 160 bits | 40 | Collisions demonstrated in 2017; fine for checksums, not for signatures |
| SHA-256 | 256 bits | 64 | The default choice for new systems |
| SHA-384 | 384 bits | 96 | Truncated SHA-512; used in some TLS suites |
| SHA-512 | 512 bits | 128 | Fastest 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.
| Algorithm | Output |
|---|---|
| SHA-1 | 58cfccfa3442d22db4402a97ba7c671382052850 |
| SHA-256 | e4017eeef1529a0155b9c320cb641087779a1b93efe6af4d170e229c01212e63 |
| SHA-384 | 3c7f411ed0bdd565271a6e6cc74cb90d062ff4fe0964be6dca8b29c5ab92310f5bfa08e2a4b3e37aa8189d6a693d5d46 |
| SHA-512 | 649e28a16fb2abde0270830e30d03d446c4331926ba055fd5b9648f6f393325d8b533aa00f98cf01b3cd69ed204e8145619699da796efc197302d0b99c621c3a |
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
Related tools
JSON Formatter
Developer Tools
Format, validate and minify JSON instantly.
Open toolBase64 Encode / Decode
Developer Tools
Encode text to Base64 or decode it back.
Open toolURL Encode / Decode
Developer Tools
Percent-encode or decode URLs and query strings.
Open toolUUID Generator
Developer Tools
Generate random UUID (v4) identifiers in bulk.
Open tool