Base64 Decode

Turn a Base64 string back into the readable text it was made from.

base64-decode
Result
—
In summary: The string Q2FsY3Vsb3JpdW0= decodes to Calculorium. Decoding maps each group of four Base64 characters back to three bytes, then reads those bytes as UTF-8 text, so accented characters and emoji come back intact.

How Base64 decoding works

Each Base64 character carries 6 bits, so four characters rebuild three original bytes. Trailing = signs tell the decoder that the last block was short. The recovered bytes are then interpreted as UTF-8 text using decodeURIComponent(escape(atob(value))), which is why Q2FsY3Vsb3JpdW0= comes back as Calculorium rather than mangled characters.

Working backwards from the output length is easy: every four Base64 characters produce three bytes, so a 16-character string like Q2FsY3Vsb3JpdW0= carries at most 12 bytes, and the single pad character tells you the real payload is 11.

The JSON formatter is the obvious companion when this one is not quite the right shape.

How to use this decoder

Paste the encoded string and read the plain text below. Whitespace and line breaks are stripped automatically, which is handy for MIME payloads wrapped at 76 characters. If the string contains characters outside the Base64 alphabet, or its length is not a multiple of four, the tool reports that it is not valid Base64 instead of guessing. To go the other way, use the Base64 encoder.

The whole conversion happens locally with JavaScript: nothing you paste is uploaded, logged or stored, which matters when the string is a token, a config value or a log entry.

When decoding fails

Three problems account for almost every failure:

SymptomLikely cause
Invalid stringURL-safe variant using - and _ instead of + and /
Invalid stringMissing = padding after copy and paste
Garbled outputThe data was binary, not text

If the payload came from a URL, run it through the URL decoder first.

A quick sanity check: a valid Base64 string has a length divisible by four and contains only A-Z, a-z, 0-9, plus, slash and trailing equals signs.

Frequently asked questions

What does Q2FsY3Vsb3JpdW0= decode to?
It decodes to the text Calculorium.
Can it decode URL-safe Base64?
Not directly. Replace - with + and _ with / first, then decode the result here.
Why does my output look like random symbols?
The original data was probably binary, such as an image, rather than text. Base64 can carry any bytes but only text displays sensibly.
Is my data uploaded anywhere?
No. Decoding runs in your browser with JavaScript, so the string stays on your device.
Is there a size limit on what I can decode?
There is no fixed limit, but very large strings are limited by your device's memory. A payload of a few hundred kilobytes decodes instantly, while a multi-megabyte string can briefly freeze the tab while the browser works through it.
How this tool works

The formula behind this tool is written out in full in the sections above, so you can check the maths yourself. Every calculator on Calculorium is verified against worked examples with automated tests before it is published, and pages are reviewed as formulas or standards change. Nothing you type is sent anywhere — the calculation runs entirely in your browser. Read how we build and check these tools.

Last updated: October 2, 2026 · Calculations run in your browser. Estimates for information only.