IMAGE BASE64 TOOLBase64 decoder

Hash Generator

Hash generator calculates MD5, SHA-1, SHA-256 and SHA-512 together from the same UTF-8 text, with a separate copy button for each digest and Hex or Base64 output.

MD5 and SHA-1 have known collisions. Do not use them for security-sensitive purposes, signatures or password storage.

Ready. One text input, up to 1 MiB of UTF-8 bytes.

Public abc vector, four calculated digests

We used the exact three-byte ASCII input abc, with no trailing newline. The MD5 expected value is published in RFC 1321; the SHA-1, SHA-256 and SHA-512 expected values are published in RFC 6234. We calculated the outputs below and compared them with those published values rather than copying another tool’s table.

AlgorithmInput UTF-8 bytesDigest bytesCalculated hexCalculated Base64
MD5316900150983cd24fb0d6963f7d28e17f72kAFQmDzST7DWlj99KOF/cg==
SHA-1320a9993e364706816aba3e25717850c26c9cd0d89dqZk+NkcGgWq6PiVxeFDCbJzQ2J0=
SHA-256332ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015adungWv48Bz+pBQUDeXa4iI7ADYaOWF3qctBD/YfIAFa0=
SHA-512364ddaf35a193617abacc417349ae20413112e6fa4e89a97ea20a9eeee64b55d39a2192992a274fc1a836ba3c23a3feebbd454d4423643ce80e2a9ac94fa54ca49f3a81oZNherrMQXNJriBBMRLm+k6JqX6iCp7u5ktV05ohkpkqJ0/BqDa6PCOj/uu9RU1EI2Q86A4qmslPpUyknw==

For MD5 we ran our JavaScript implementation and the separate pure-JavaScript noble-hashes implementation. For the three SHA algorithms we compared Web Crypto results with noble-hashes. Every digest byte agreed. Python hashlib additionally produced the same outputs. Node Web Crypto and Python may share OpenSSL, so those two alone are not claimed as independent algorithm implementations; the separate pure-JavaScript comparison supplies that check.

Original shared UTF-8 input check

We also authored the exact input Hash sample é 🚀[LF], where [LF] denotes one real final line-feed character. All four algorithms received those same encoded bytes. This example tests an accented character, a supplementary emoji and an intentional trailing newline together, rather than reusing either single-algorithm page’s sample table.

AlgorithmInput UTF-8 bytesDigest bytesCalculated hexCalculated Base64
MD52016c0f39480603503c4de77f40db5812c52wPOUgGA1A8Ted/QNtYEsUg==
SHA-120209d1be2025d78d6112f19e33862832f3f76b62fd2nRviAl141hEvGeM4YoMvP3a2L9I=
SHA-2562032ea682226057c7925f57adde12de058f6282b027651799cf8897900eb0598e3fb6mgiJgV8eSX1et3hLeBY9igrAnZReZz4iXkA6wWY4/s=
SHA-5122064a4bc4e4c415091a76e14d1a8b96f0bafaeea67168b36dd8c48160248d80f41cd16462d1b11761d77bc9138c41e4a2c1204e1fbbc872b4fe1d31930b1fd033d83pLxOTEFQkaduFNGouW8Lr67qZxaLNt2MSBYCSNgPQc0WRi0bEXYdd7yROMQeSiwSBOH7vIcrT+HTGTCx/QM9gw==
Measured byte and representation lengths for MD5
Input byte counts and output representation lengths for MD5.
Measured byte and representation lengths for SHA-1
Input byte counts and output representation lengths for SHA-1.
Measured byte and representation lengths for SHA-256
Input byte counts and output representation lengths for SHA-256.
Measured byte and representation lengths for SHA-512
Input byte counts and output representation lengths for SHA-512.

The original sample contains 20 UTF-8 bytes. Its visible characters and the final line feed determine those bytes; no trimming or Unicode normalization was applied by the calculation code. For each row we computed both independent implementations again and checked the digest bytes. We also encoded the digest bytes as lowercase hex and standard Base64, parsed both representations back to bytes and compared them. Every representation comparison matched.

The input cannot be checked by treating a digest as a text result. Our checks are forward digest calculations and representation-byte comparisons. Switching Hex to Base64 changes the display notation, not the algorithm or the digest bytes. It does not compute a new algorithm from the previous digest.

To reproduce the public row, enter abc and calculate all. For our original sample, enter the stated characters and one final line feed. Compare all four outputs with the table, then switch representation and compare the corresponding Base64 values. The textarea follows browser line-ending behavior; the tool hashes the text currently held by that input. No extra trimming, case change or Unicode normalization is performed. A different line ending or an omitted final newline is a different input.

Known collisions and usage boundaries

MD5 and SHA-1 have known collisions. They must not be used for security-sensitive purposes, digital signatures or password storage. This page makes no protection claim for a digest. Plain, fast digest functions are not password-storage schemes. Digest length alone does not prove which algorithm produced an unknown string.

Hash functions produce one-way digests. This tool calculates digests from supplied text; it has no source-text lookup service. Equal inputs with equal encoding produce equal outputs for a selected algorithm. Different inputs can share an output, and the MD5 and SHA-1 collision limitation is explicit. See RFC 6151 for MD5 limitations and NIST’s SHA-1 collision report for the demonstrated SHA-1 collision.

Input, output and limits

One text input per run, up to 1 MiB of UTF-8 bytes. Empty text is accepted. Unpaired Unicode surrogates are rejected rather than replaced during encoding. Output contains all four algorithm names and digests in lowercase hex or standard Base64. MD5 has 16 digest bytes, SHA-1 has 20, SHA-256 has 32 and SHA-512 has 64; those lengths were also checked in our runs. Copy an individual result or all labeled results.

No file upload, batch input, daily counter, login, registration or saved history. All calculations stay in your browser; the page uses Web Crypto for SHA algorithms and local JavaScript for MD5. It requires a browser with Web Crypto on HTTPS. Unsupported browser capabilities report an error. It does not create HMACs, select a password-storage scheme or identify unknown digests.

How this entry page differs

MD5 Hash Generator focuses on that single algorithm and its test vectors. SHA256 focuses on that single algorithm. This page calculates four algorithms together from one input. Hash Identifier lists candidates for an existing digest from length and character-set features; it does not calculate these four outputs from text. Use this page when you need the four named outputs side by side.

Public vector sources: RFC 1321 MD5 tests and RFC 6234 SHA tests.

Related representation walkthrough

This existing video discusses image-to-character representations, not digest calculation. Loading the player connects to YouTube and shares connection information such as your IP address and playback requests.

Watch the existing representation walkthrough