Base64 is a way of representing arbitrary binary data — or text — using only 64 printable ASCII characters (A–Z, a–z, 0–9, plus "+" and "/", with "=" used for padding). It doesn't compress or encrypt anything; it just re-packages bytes so they can travel safely through systems that only expect plain text.
How it actually works
Base64 takes your data three bytes (24 bits) at a time and repackages those 24 bits into four 6-bit chunks. Each 6-bit chunk can only be one of 64 values, so each one maps to a single character from the Base64 alphabet. That's where the name comes from, and it's also why encoded text is always about a third longer than the original.
Base64 is not encryption
This is the most common misconception: Base64 is fully reversible by anyone, with no key or password required — decoding it is a single, well-known operation. It provides zero confidentiality. If you need to keep data secret, you need actual encryption; Base64 only guarantees that data survives being copy-pasted, stored in a text field, or sent through a system that wasn't built to handle raw binary.
Text vs. binary input
When you encode plain text (rather than an image or file), the text is first converted to its raw bytes using a character encoding — almost always UTF-8 today — and then those bytes are Base64-encoded. That's why a proper Base64 tool needs to handle UTF-8 correctly: encode a string with emoji or accented letters incorrectly, and decoding it back can produce garbled text instead of the original.
Why it can run entirely in your browser
Encoding and decoding Base64 is pure, deterministic math on the bytes you already have — no lookups, no external data, no network call needed. Every modern browser exposes this directly through built-in functions, which is why a Base64 converter can run entirely client-side, with your text never leaving your device.
Encode or decode text instantly, entirely in your browser.
Related: common Base64 use cases