Kritools logo Kritools

Base64 Encoder / Decoder

Convert text or files to Base64, or decode Base64 back to its original form — right in your browser. Full Unicode support and an optional URL-safe mode, with nothing ever uploaded to a server.

Encode
Decode
Text
Base64
Click to choose a file, or drag one here
Any file type — nothing is uploaded, encoding happens on your device
Base64 input

How to use the Base64 encoder / decoder

  1. Pick a mode. Use "Text" to convert typed or pasted text, "File → Base64" to convert an uploaded file into a Base64 string, or "Base64 → File" to turn a Base64 string back into a downloadable file.
  2. Choose Encode or Decode (Text mode only) using the pill toggle, or tap the swap icon to flip your current output back into the input.
  3. Paste or drop your content. For text, type or paste directly into the input box. For files, drag and drop onto the drop zone or click to browse.
  4. Turn on URL-safe mode if the Base64 string needs to go into a URL, filename, or query parameter — this swaps + and / for - and _ and strips padding.
  5. Copy or download the result. Text output can be copied with one tap; file conversions can be copied as a string or downloaded directly.

Everything happens locally in your browser — no file or text is ever sent to a server, which makes this safe for sensitive data like API keys, tokens, or private documents.

Features

Full Unicode support

Correctly encodes and decodes emoji, Assamese, Hindi, and other non-Latin scripts — not just plain ASCII text, which is where most basic Base64 tools break.

URL-safe variant

One toggle switches to the URL-safe alphabet, so the output can be dropped straight into a link, filename, or query string without escaping.

File conversion both ways

Convert any file to a Base64 string, or paste a Base64 string (including a full data: URL) and download it back as a file.

100% client-side

All processing happens in your browser. Nothing is uploaded, logged, or stored on a server — your data never leaves your device.

No sign-up, no limits

Free to use with no account, no watermarks, and no artificial caps beyond what your device's memory can handle.

Handles large files

Processes files in chunks to avoid browser call-stack limits, so larger files convert reliably instead of silently failing.

Frequently asked questions

No. Every conversion happens locally in your browser using JavaScript. Nothing you type or upload is sent to a server, logged, or stored.

Decoding fails if the input isn't valid Base64 — for example, if it's missing characters, contains spaces or line breaks that weren't stripped, or uses the URL-safe alphabet while URL-safe mode is switched off (or vice versa). Try toggling URL-safe mode if decoding doesn't work as expected.

Yes. In "Base64 → File" mode, you can paste a complete data URL like data:image/png;base64,iVBOR... and the tool will automatically strip the prefix before decoding.

Yes. The tool encodes through UTF-8 bytes rather than using plain JavaScript btoa(), so emoji, Assamese, Hindi, and other Unicode text round-trip correctly instead of getting corrupted.

There's no artificial limit set by the tool — the practical ceiling is your device's available memory, since the file is processed entirely in your browser.