TontonTools

Base64 Decode

Decode Base64 back to readable text instantly, in your browser.

100% Free No signup Privacy-friendly Web Development
Updated Sep 2026
Need to encode?

Share X / Twitter Facebook LinkedIn WhatsApp

How to use Base64 Decode

  1. Paste the Base64 string into the input above.
  2. Read the decoded text — it appears instantly, with UTF-8 characters preserved.
  3. If it fails, check for Base64url: replace - with + and _ with /, then try again.
  4. Copy the result when you are done.

What is Base64 Decode?

Paste Base64, get text. Drop the encoded string into the field above and the decoded result appears immediately.

Base64 represents binary data using only 64 safe characters — A-Z, a-z, 0-9, + and /, with = as padding. It exists because plenty of systems only reliably carry text: email bodies, JSON fields, URLs, HTML attributes and HTTP headers all pass Base64 through untouched where raw binary would be corrupted.

It is not encryption. Base64 is trivially reversible by anyone — it hides nothing. If a value needs protecting, it needs encryption or hashing, not encoding.

About the Base64 Decode

How to recognise Base64: the character set above and a length that is always a multiple of 4, padded with one or two = at the end when it does not divide evenly. Three bytes of input become four characters of output, which is why Base64 is always about 33% larger than the data it encodes.

Where you meet it:

  • Data URIsdata:image/png;base64,... embeds an image directly in HTML or CSS, saving a request at the cost of size.
  • Email attachments — MIME has encoded them this way since the early nineties.
  • JWTs — the header and payload of a JSON Web Token are Base64url, which is why you can read a token's claims without any key.
  • HTTP Basic authAuthorization: Basic is just user:password in Base64, which is precisely why it must only travel over HTTPS.

Base64url is a variant you will hit often: it swaps + for - and / for _ so the value is safe inside a URL, and usually drops the padding. If a decoder rejects your string, this is usually why.

On UTF-8: naive decoders mangle accented characters and emoji because they treat each byte as one character. The decoder above handles multi-byte UTF-8 correctly, so "café" and "日本語" come back intact.

Everything is decoded locally in your browser — nothing is uploaded, which matters when the string you are inspecting is a token or a credential.

Frequently Asked Questions

Paste it into the field above. The decoded text appears immediately — no button, no upload, no signup.
No. It is encoding, not encryption, and anyone can reverse it in seconds. It protects nothing — use encryption or hashing for anything that needs to stay secret.
That is padding. Base64 works in blocks of three bytes producing four characters; when the input does not divide evenly by three, = is added to fill the final block.
Usually a UTF-8 problem: naive decoders treat each byte as a character and mangle accents and emoji. This decoder handles multi-byte UTF-8, so café and 日本語 decode correctly.
Base64url replaces + with - and / with _ so the value is safe inside a URL, and it usually omits the padding. JWTs use Base64url. If a decoder rejects your string, this is normally the reason.
Because every three bytes become four characters — roughly 33% overhead. That is the cost of making binary data survive systems that only carry text.

We use cookies for analytics and to keep the tools free via ads. See our Privacy Policy.