Base64 Decode & Encode

Decode a Base64 string to readable text or a file, or encode text to Base64. URL-safe variants and data URIs are handled automatically.

Base64 input

Decoded text

How Base64 works, one bit at a time

Base64 takes your bytes three at a time — 24 bits — and cuts them into four 6-bit pieces. Six bits can count from 0 to 63, and each number picks one character from a 64-letter alphabet: A–Z, a–z, 0–9, + and /. That’s the whole trick, and why the output is always 4/3 the size of the input.

Hi!
7210533
010010000110100100100001
S18G6k36h33

“Hi!” → SGkh · 3 bytes in, 4 characters out.

When the last group has only one or two bytes, zeros fill the missing bits and = signs stand in for the empty 6-bit slots — that’s the padding you see at the end of so many Base64 strings. If pulling apart a mechanism like this appeals to you, ahaboo offers interactive walkthroughs of how real-world things actually function.

What Base64 is for

Base64 turns arbitrary bytes into 64 safe ASCII characters so binary data can travel through text-only channels: email attachments (MIME), data URIs in CSS and HTML, JSON fields, HTTP Basic auth headers and JWTs. It is encoding, not encryption — anyone can decode it.

Standard vs. URL-safe

Standard Base64 (RFC 4648) uses + and /, which have special meanings in URLs. The URL-safe alphabet swaps them for - and _ and usually drops the = padding. The decoder accepts both automatically.

Why the output is a third bigger

Every 3 bytes become 4 characters, so Base64 is about 33% larger than the original. Step through the explainer below to see exactly how.

Questions

Why do I get “binary data (not UTF-8 text)”?

The Base64 holds a file such as an image or PDF, not text. Use the download button to save the decoded bytes; images are previewed.

Does it handle emoji and accented characters?

Yes. Text is encoded as UTF-8 before Base64, which is what virtually every modern system expects.

What does the = at the end mean?

Padding. When the input length is not a multiple of 3 bytes, one or two = signs fill the last 4-character group.

Related tools