Hash generator
Generate MD5, SHA-256 and four more hashes from text or files. Compare a checksum, make an HMAC or copy an SRI value. Your input stays in this tab.
Add text or files, calculate, then copy or check a hash.
Signed in, your settings save automatically. Text, files, checksums and secret keys stay in this tab. Account saving
Your input
UTF-8 textHashes update as you type. UTF-8 includes accents and emoji.
Files are read in small chunks. Your file names and bytes are never uploaded.
HMAC with a secret key
For a keyed message authentication code. Uses SHA-1 and SHA-2. MD5 and CRC32 are excluded.
Checks against every available hash. No algorithm selection needed.
Your hashes
Six algorithmsSHA-256
Recommended256-bit digest will appear here
MD5
Legacy128-bit digest will appear here
SHA-1
Legacy160-bit digest will appear here
SHA-384
384-bit digest will appear here
SHA-512
512-bit digest will appear here
CRC32
Checksum32-bit checksum will appear here
Exports contain hashes and file names, never your text or secret key.
Clipboard access is unavailable. The result is selected below. Copy it with your keyboard.
How to generate a hash
Enter text or choose files
Paste text, or switch to Files and drop your downloads. Spaces and line breaks count. Files keep their original bytes.
Read the hashes
All six algorithms appear together. SHA-256 is the default recommendation. Choose another output format or enable HMAC if needed.
Copy or verify the result
Copy a digest, export the batch or paste an Expected checksum. A matching result is highlighted with a clear message.
Using the hash generator
Start with text for a string checksum, or choose Files for a download. All six digests come from the same input.
Text and input encoding
Text to hash uses UTF-8 by default. The byte count tells you how much data the tool will hash.
| Control | What it does |
|---|---|
| Text / Files | Switches the source. Typed text and selected files remain in tab memory while you switch. |
| Text to hash | Recalculates after you pause typing. It does not trim spaces or normalise Unicode. |
| Try abc | Loads three UTF-8 bytes. Useful for checking a known test vector. |
| Hash empty input | Calculates the zero-byte digests. An empty input still has a valid hash. |
| Clear input | Removes your text and results. It returns to the waiting state. |
| Input encoding | UTF-8 text hashes the characters. Hex bytes and Base64 bytes decode the input first. Invalid encodings show an error. |
For the same three bytes, enter abc as UTF-8, 61 62 63 as Hex bytes or YWJj as Base64 bytes. They produce identical digests.
Files and batch results
File mode hashes the exact file bytes, including line endings and byte order marks. A filename does not affect the digest.
| Control | What it does |
|---|---|
| Choose files / Add files | Selects any file type. You can also drop files into the file area. The batch accepts up to 100 files. |
| Remove [filename] | Removes that file and recalculates the remaining selection. |
| Clear files | Releases the selected files and clears their results. |
| Cancel | Stops the worker. Completed files remain available to copy or export. |
| Retry files | Recalculates the selected batch after a cancellation or error. |
| File result summary | Opens that file’s six digests. The first file opens by default. A checksum match opens its file automatically. |
The worker reads each file in 2 MiB chunks. There is no fixed per-file size cap, but runtime depends on your device. A very large batch can still take time.
Output format, copy and export
Output format changes how a digest is written. It does not change the input or recalculate the hash.
| Control | What you get |
|---|---|
| Hex (lowercase) / Hex (uppercase) | The same bytes written with lowercase or uppercase hexadecimal letters. |
| Base64 | The digest bytes encoded as standard Base64, including padding where needed. |
| SRI (SHA-2 only) | A SHA-256, SHA-384 or SHA-512 digest with its algorithm prefix. Other rows show explicitly labelled hex. HMAC cannot produce SRI. |
| Copy | Copies that algorithm’s displayed digest. |
| Copy all | Copies the completed digests with algorithm labels and filenames where applicable. |
| Download checksums | Saves the same labelled results as a text file. This is a report, not a native sha256sum manifest. |
| Download JSON | Saves byte counts and digest values with their output formats. File results include their names. |
| Manual copy | Appears if clipboard access fails. The output is selected so you can copy with your keyboard. |
Exports never contain your source text or secret key. Copying or downloading records numeric activity, without the digests or filenames.
HMAC with a secret key
Enable HMAC when you need a keyed message authentication code. It is useful for checking an API signature’s calculation.
| Control | Effect |
|---|---|
| HMAC with a secret key | Opens the advanced controls. |
| Enable HMAC | Calculates HMAC-SHA-1, HMAC-SHA-256, HMAC-SHA-384 and HMAC-SHA-512. MD5 and CRC32 are unavailable. |
| Secret key | The key used by HMAC. It stays in tab memory. An empty key is allowed and clearly reported. |
| Key encoding | Reads the key as UTF-8 text or decodes hex/Base64 bytes. Match the encoding required by your protocol. |
HMAC does not sign a complete API request automatically. You must supply the exact message and key that your protocol specifies.
Expected checksum
Paste a complete hex, Base64 or SRI reference to compare it with every completed digest. Hexadecimal letter case is ignored.
A match highlights the digest and names its algorithm and file. A valid but different value reports no match. An incomplete or unsupported value reports an error.
Get the expected value from a trusted publisher. A match confirms agreement with that value; it does not prove a file is harmless.
Keyboard controls
Every control works with the keyboard. There are no custom shortcuts that override your browser’s copy or paste commands.
| Key | Action |
|---|---|
| Tab / Shift + Tab | Move between controls in document order. |
| Enter / Space | Activate buttons and open file result summaries. |
| Ctrl + C or ⌘ + C | Copy selected text, including the Manual copy fallback. |
What this tool will not do
It does not crack hashes, encrypt files or store passwords. SHA-3, bcrypt and NTLM are outside this tool’s scope.
It does not fetch a URL to generate SRI. Choose the exact downloaded script or stylesheet instead. Whitespace changes in that resource change its digest.
JavaScript and a browser with workers are required. Your operating system’s checksum command is an alternative in the guide below.
Frequently asked questions
What is a hash generator?
A hash generator calculates a fixed-length digest from your input. The same bytes and algorithm produce the same result. You can use a checksum to compare a download with a publisher’s reference. Hashing does not encrypt the file.
How do I use the MD5 hash generator?
Paste your text or choose a file. Read the MD5 result and press its Copy button. MD5 always produces 32 hexadecimal characters. Use it to match an existing MD5 reference. Choose SHA-256 when creating a new checksum.
Can I generate a SHA-256 hash of a file?
Yes. Choose Files and select or drop your file. The tool reads its bytes locally in 2 MiB chunks. SHA-256 appears alongside the other five digests. You can also hash several files and download their checksums together.
Are my files or text uploaded?
No. Hash calculation runs inside your browser. Text, file contents, filenames, expected checksums and secret keys stay in this tab. If you sign in, only the encoding, output format and HMAC settings save to your private account.
Is this a password hash generator?
No. MD5 and SHA hashes are fast general-purpose algorithms. Adding a secret key does not make them suitable for password storage. Use a dedicated password hashing scheme such as Argon2id in your application. This tool does not generate bcrypt or NTLM hashes.
Can I convert an MD5 hash to SHA-256?
You need the original input. A digest does not contain the original text or file. Hashing the MD5 string produces SHA-256 of that string, not SHA-256 of the original data. This tool calculates both directly when you provide the input.
Why does the same text give a different hash elsewhere?
Check the bytes first. A trailing newline, a space or a different encoding changes the digest. Visually identical Unicode text can have different byte sequences. The guide shows tested examples. For a file checksum, choose the file rather than pasting its text.
Something missing? Request a feature