Skip to content
NimbusNexus
Free utility · Runs in your browser

A Base64 encoder that never sees your input.

Convert text or files to Base64 and back, with UTF-8 safety and a URL-safe variant for use in JWTs, query strings, and headers. The encoder, the decoder, and the file reader all run in this browser tab — your bytes never reach a server.

0 bytes
OutputAwaiting input
Encoded or decoded output will appear here…
Encode a file
PRIVACY

Your input never leaves your machine. The encoder, the decoder, and the file reader all run in this browser tab using the built-in `TextEncoder`, `TextDecoder`, `btoa`, `atob`, and `FileReader` APIs. We never see your text or files, and the page makes no network calls related to your input.

What you get

UTF-8 safe encoding, and the variants that actually matter.

The Base64 features people reach for — full Unicode round-trip, URL-safe variant, file mode — surfaced without sign-up, without ads, and without dropping your bytes on a server.

UTF-8 round-trip

Emoji, accented characters, and CJK round-trip cleanly. Naïve `btoa(str)` fails on any code point above 0xFF — this encoder pipes through `TextEncoder` first, so the whole Unicode range works without manual escaping.

URL-safe variant

Switch between standard Base64 (`+`, `/`, `=`) and URL-safe Base64 (`-`, `_`, no padding) — the variant used in JWTs, OAuth state, and any query-string payload that fears percent-encoding.

Decode auto-detect

Decoding accepts either variant, with or without padding, and tolerates whitespace and newlines. Paste output from any tool — `openssl base64`, `base64url`, hand-trimmed JWT segments — and it just works.

File mode

Drop a file (image, PDF, anything under 5 MB) to get its Base64 representation — useful for embedding small assets as `data:` URLs or stuffing binary into JSON. Reads via `FileReader`; bytes never leave the page.

Live preview

Every keystroke triggers a re-encode or re-decode. No Generate button, no spinner — just immediate output, even on inputs at the 5 MB ceiling.

Precise error messages

On decode failure, the engine surfaces the exact problem — invalid character, length not multiple of 4, malformed padding. You see what `atob` would throw, in plain English.

Copy + download

One click for the system clipboard or a `.txt` file. The clipboard mirrors whatever is currently in the output pane; the download saves the same.

No sign-up, no tracking

Use it without an account, on as many payloads as you want, and there is no usage counter. The only cookies this site sets are two language cookies, and neither identifies you. Inspect the network tab — there is nothing outbound to inspect.

Common uses

Wherever bytes need to travel as plain ASCII.

DATA URL
Embed a small image inline

Convert a 4 KB favicon, SVG, or sprite into a `data:` URL so it ships inside the HTML instead of as a separate request. Saves a roundtrip on the critical path.

data:image/svg+xml;base64,PHN2Zy…
JWT
Inspect token segments by hand

A JWT is three URL-safe Base64 strings joined with dots. Decode the second segment to see the payload claims — useful when the decoder tool is overkill and you just want a quick peek.

eyJhbGciOiJIUzI1NiJ9.eyJzdWIi…
AUTH
Build an HTTP Basic Auth header

Encode `user:password` as standard Base64 and prepend `Basic ` — that is the entire spec for the `Authorization` header in HTTP Basic. Handy for one-off curl calls before reaching for a proper client.

Authorization: Basic dXNlcjpwYXNz
TRANSPORT
Stuff binary into JSON

JSON has no native binary type, so files, certificates, and protobuf payloads travel as Base64 strings. Encode locally before constructing the payload; decode at the receiving end.

{"cert":"LS0tLS1CRUdJTiBDRVJUSUZJ…"}
SHELL
Pass payloads through pipes safely

Shells, CI systems, and config managers choke on raw binary or multi-line strings. Base64 collapses the input to a single ASCII line that survives any quoting, splitting, or env-var stuffing.

echo $SECRET | base64 -d > /tmp/cert
PROTOCOL
Build a Sec-WebSocket-Key

WebSocket handshakes require a random 16-byte key encoded as standard Base64. Generate the bytes elsewhere, encode them here, and paste the result into the `Sec-WebSocket-Key` header.

Sec-WebSocket-Key: dGhlIHNhbXBsZSBub25jZQ==
FAQ

Base64 encoding, the plain answers.

Is Base64 encryption?

No. Base64 is an encoding, not an encryption — anyone can decode it instantly without a key. It exists to transport bytes through systems that only allow ASCII (email, URLs, headers, JSON). If you need confidentiality, encrypt first and then Base64 the ciphertext.

What is the URL-safe variant for?

Standard Base64 uses `+`, `/`, and `=`, all of which get percent-encoded inside URLs and form fields. The URL-safe variant swaps them for `-`, `_`, and no padding — the result fits into a URL, a JWT, or an OAuth state parameter without further escaping. JWTs use it everywhere by spec (RFC 7515 §3).

Why does my emoji round-trip correctly here when `btoa` fails?

Because we encode the string to UTF-8 bytes first via `TextEncoder` before handing it to `btoa`. Raw `btoa(str)` walks the input as 16-bit code units and throws on anything above 0xFF — which includes every emoji, every CJK character, and several accented Latin letters. The two-step pipeline (text → UTF-8 bytes → Base64) is the standard fix.

Will my data be sent to a server?

No. Every byte of the pipeline runs in this browser tab — the encode/decode, the file read, the variant conversion. The page makes no network calls related to your input. Open DevTools → Network while you paste, and nothing outbound appears.

What is the size limit?

Inputs above 5 MB are rejected to keep the live preview responsive — Base64 inflates by ~33%, so a 5 MB input produces a ~6.7 MB output, and the UI starts to feel sluggish past that. For larger payloads use a command-line tool like `base64` or `openssl base64`.

Can I encode files?

Yes — drop any file under 5 MB into the file strip and the tool reads it with `FileReader.readAsArrayBuffer`, then Base64-encodes the bytes. Output is plain ASCII text you can paste into a JSON field, a `data:` URL, or anywhere else. The file is read locally; nothing is uploaded.

When you need more

Shipping APIs that handle the actual binary?

Sign up for the free tier and you get $100 in credits, plus VMs, managed databases, object storage, and zero-config autoscaling across four regions.