Base64 Encode/Decode
Convert text or a file to and from Base64, UTF-8 safe. Nothing you paste or choose ever leaves this tab.
0 characters
Nothing you type here is sent anywhere.
What this tool does
Base64 turns arbitrary bytes into plain ASCII text (and back) — the encoding behind data URIs, email attachments, Basic Auth headers, and countless config values and API payloads. This tool encodes or decodes either pasted text or a file you choose, correctly handling text with accents, emoji, and other multi-byte characters, which the browser's built-in `btoa`/`atob` get wrong on their own.
Type or paste text for instant, live conversion, or switch to file mode to encode a file into its Base64 text form, or decode a Base64 text file back into the original binary file.
How to use it
Pick Paste text or Upload file at the top, then choose Encode or Decode. In text mode, the result updates as you type. In file mode, choose one or more files and press Convert — encoding produces a copyable, downloadable text file per input, and decoding produces the original binary file back.
Copy the result with one click, or download it. Clear the input any time to start over.
Why nothing leaves your device
Base64 shows up constantly around credentials and config — Basic Auth headers, API keys embedded in a data URI, tokens tucked into a JWT segment, a config value someone base64-encoded before pasting it into a ticket. Decoding one of those in a typical online tool means sending it to a server first, which is exactly the wrong move for something that's often a credential in disguise.
Encoding and decoding both run using `TextEncoder`/`TextDecoder` and the browser's own Base64 primitives, already loaded in this tab — there's no server-side step involved, so there's nothing to send. Check your browser's network tab while using it and you'll see no request carrying anything you typed or uploaded.
What this does well — and what it doesn't
Text encode/decode is UTF-8 safe end to end, unlike a naive `btoa(text)`, which corrupts or throws on anything outside the Latin1 range. File mode handles files of any type and size your browser can comfortably hold in memory, and multiple files at once.
Decoding a file produces its original bytes back, but the tool doesn't know (and doesn't guess) what the original file type was, so the downloaded file gets a generic name rather than restoring the original extension — rename it once you know what it should be. And this is plain Base64, not the URL-safe Base64 variant JWTs use internally; for that, use the JWT Decoder.