Base64 Encoder / Decoder
Encode text to Base64 or decode it back. UTF-8 safe in both directions, and your input never leaves the page.
What Base64 actually does
Base64 re-expresses arbitrary bytes using 64 characters that survive any text-only channel — email bodies, JSON fields, URLs, HTML attributes. It groups the input into 24-bit blocks and splits each into four 6-bit values, which is why the output is always about 33% larger than the input, and why it sometimes ends in one or two = characters of padding.
Base64 is not encryption
This is the misunderstanding that causes real incidents. Base64 is reversible by anyone, with no key and no effort — this page does it instantly. Credentials encoded in Base64 inside a config file or an HTTP header are, for practical purposes, in plain text. HTTP Basic authentication works exactly this way, which is why it is only ever acceptable over TLS.
It is also why pasting an encoded value into a server-side decoder is riskier than it looks: whatever was hiding behind the encoding is now in someone else's request log in readable form. This decoder runs in the page using the browser's own TextEncoder and btoa, so there is nothing to log.
Common questions
Is it safe to paste sensitive data into a Base64 encoder?
Only if the encoder runs in your browser. Many online encoders POST your input to a server where it can be logged or retained. This one converts locally — check the DevTools Network tab, and apply the same test to any tool you use.
Is Base64 encryption?
No. It is an encoding. Anyone can reverse it instantly without a key. Use it to move binary data through text-only channels, never to protect it.
Why does my decoded text show strange characters?
Usually the string was encoded from a different character set, or it is URL-safe Base64, which substitutes - and _ for + and /. This tool handles UTF-8 correctly and reports invalid input rather than returning nonsense.