ToolsBench

Base64

Encode or decode Base64 text (UTF-8 safe).

Input
Output

About Base64

Base64 is an encoding that represents any data using only 64 safe ASCII characters, so it can travel through systems built for plain text — email bodies, JSON strings, data URLs, HTTP headers. You meet it constantly in development: credentials in HTTP Basic auth, images inlined into CSS as data URLs, the header and payload of every JWT, PEM certificate files. This tool encodes and decodes Base64 with full UTF-8 support, so emoji and non-Latin scripts round-trip correctly — a common failure point, since JavaScript's built-in btoa() chokes on anything outside Latin-1. Because decoding happens entirely in your browser, it's also the safe place to decode strings that are often secrets: nothing you paste here ever appears in another server's request logs.

How to use Base64

1
Choose Encode or Decode
Encode turns readable text into Base64; Decode turns Base64 back into text.
2
Paste your text
The result appears instantly as you type — no button to press.
3
Copy the output
One click copies the result to your clipboard.

Frequently asked questions

Is my data uploaded anywhere?
No. Everything you paste is processed by JavaScript running in your browser tab. Nothing is sent to a server, logged or stored — close the tab and it's gone.
Is Base64 encryption?
No — it's encoding, not encryption. Anyone can decode Base64. Never use it to protect secrets; it only makes data safe to transport as text.
Why does my decoded output look garbled?
The input probably isn't valid Base64, or it encodes binary data (like an image) rather than text. Binary content has no meaningful text representation.
Why does the encoded string end with = signs?
That's padding. Base64 works in 3-byte groups; when the input length isn't a multiple of three, one or two = characters fill out the final group. Some variants, like the Base64url used in JWTs, drop the padding.
Does Base64 make data smaller?
The opposite — encoded output is about 33% larger than the input, because every 3 bytes become 4 characters. If size matters, compress first, then encode.

Go deeper