🔤 Encode / Decode

Base64 Encoder / Decoder

Encode text to Base64 or decode it back. UTF-8 safe in both directions, and your input never leaves the page.

📥 Input
📤 Output
Output will appear here...
Choose Encode or Decode below
// EXAMPLE
Plain text:
Hello, CleanVault!
Base64 encoded:
SGVsbG8sIENsZWFuVmF1bHQh
Verify it yourself. Open DevTools (F12), switch to the Network tab and use the tool. Nothing appears — the readout in the header counts first-party requests made since this page loaded, and using a tool makes none.

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.

Advertisement

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.