Base64 Encoder / Decoder

Convert text to Base64 and back, with full Unicode support and no server round-trip.

Plain text

Base64

What this tool does

Converts text to Base64 and back. Type in either field and the result appears as you go — there is no convert button because there is nothing to wait for.

Unicode works properly here

The browser's built-in btoa() throws on any character above U+00FF, which is why so many Base64 tools break on Korean, emoji, or accented text. This one encodes to UTF-8 first, so 안녕 and 🔒 round-trip correctly.

Base64 is not encryption

This is worth being blunt about: Base64 provides no secrecy whatsoever. It is a transport encoding, and anyone can reverse it in one step with no key. If you need content to stay private, encrypt it — Invisible Text uses AES-256-GCM with a passphrase.

Common uses

  • Data URIs. Embedding small images or fonts directly in CSS or HTML.
  • Email attachments. MIME encodes binary attachments as Base64.
  • APIs and JSON. Carrying binary values through text-only formats.
  • Basic auth headers. Credentials are Base64-encoded — which is exactly why that scheme needs HTTPS.

FAQ

What is Base64 used for?

Base64 rewrites binary or text data using only 64 safe ASCII characters, so it can travel through systems that expect plain text. It is how images get embedded in CSS as data URIs, how email attachments are encoded, and how binary values are carried inside JSON or URLs.

Is Base64 encryption?

No, and this matters. Base64 is an encoding, not a cipher — anyone can decode it instantly with no key. It offers zero secrecy. If you need the content to stay private, encrypt it; the OpenSeal Invisible Text tool uses AES-256-GCM for exactly that.

Does this handle emoji and non-English text?

Yes. The text is encoded as UTF-8 before Base64 is applied, so Korean, Arabic, emoji, and any other Unicode survive the round trip. Naive implementations that use btoa() directly throw an error on these characters.

Is my data sent anywhere?

No. Encoding and decoding run entirely in your browser. Nothing is uploaded, logged, or stored, and the tool works with the network disconnected.

Why does my Base64 string end with = signs?

Base64 works in blocks of three bytes. When the input does not divide evenly, one or two = characters pad the final block. They are part of the format and should not be removed.