Base64 decoder.
Paste Base64 and read the text it holds as you type. Standard and URL-safe alphabets, with or without padding, line breaks ignored; everything runs in your browser.
Base64 decoder.
Need the UI around it? With Pro, your AI agent builds the form, the result card and the rest of the page from a prompt.
Get ProHow it works
3 steps, no account. It runs in your browser and nothing is uploaded.
Paste the Base64
Paste the Base64, with or without its spaces and line breaks; the text appears as you type.
Read the status
The status line says how many characters became how many bytes, and whether they are UTF-8 text.
Copy or download
Copy the text or download it; for bytes that aren't text, use Base64 to file.
Related tools
More encoders and decoders. Every one free, in the browser.
Pricing
Build it with Pro
The tool is free. Pro adds 6,000+ blocks, premium templates and the MCP server, so your AI editor builds the product around it.
4.9/5 out of 5 · 150+ reviewsfrom 150+ founders and developers.
- Secure checkout via Stripe
- Code lives in your repo
- Keep what you've shipped if you cancel
- License terms
Questions and answers
Before you trust the result: what to know about the format, the limits, your data and the tools next to it.
Base64 writes binary data with 64 printable characters: A to Z, a to z, 0 to 9, + and /, with = as padding. It dates from the PEM mail standard of 1987, was fixed in MIME in 1993 and is specified in RFC 4648. It exists so that bytes can travel through systems built for text, such as email and JSON.
Three bytes are 24 bits, split into four groups of six bits, each written as one of the 64 characters. The output is a third larger than the input. When the input isn't a multiple of three bytes, the last group is padded with one or two = characters so the length is a multiple of four.
Email attachments (MIME), data URLs in HTML and CSS, JSON Web Tokens, HTTP Basic authentication headers, images inlined in stylesheets, binary fields in JSON and XML, and the SSH and PEM key files on every developer's machine.
Not the standard alphabet: + and / have meanings in a URL and = is reserved, so they have to be percent-encoded. The URL-safe variant from RFC 4648 §5 swaps them for - and _ and usually drops the padding; JWTs and most web APIs use it. The encoder here offers both.
It is the default for a reason: a third larger than the bytes, where hex doubles them and Base85 adds a quarter; built into every language and browser (btoa, atob, Buffer); and understood by every protocol. Pick Base32 when case can't be trusted, Base58 for things people copy by hand, Base85 only where PDF or PostScript asks for it.
No. Base64 is an encoding, not encryption: it changes how bytes are written, not who can read them, and anyone can decode it with no key. Encrypt first (AES, age, a library's sealed box) when the content needs protecting, then encode the ciphertext if it has to travel as text.
Paste the Base64 and the text appears as you type; the status line says how many characters became how many bytes. Spaces and line breaks are ignored, so a wrapped value from an email or a config file pastes as it is. Press Swap to encode the result again.
The decoder gives you the bytes as UTF-8 text when they are text. When they aren't, an image or a PDF for instance, it still shows them, with replacement characters where the bytes aren't valid UTF-8, and the status line says so. Use Base64 to file to download the bytes as they are instead.
Base64 uses A to Z, a to z, 0 to 9, + and /, and the error names the first character that isn't among them. Check for a stray quote, a trailing comma or a prefix from the surrounding code. Both the standard and the URL-safe alphabets are accepted, with or without padding, and a data URL's data:…;base64, prefix is dropped for you.
Nothing leaves your browser. The text is read into memory on your machine and the encoding is computed there, in plain JavaScript; the page makes no request with it. Load the page, go offline and it keeps working.
No. The Base64 decoder is free and opens without a sign-in, an account or an install.
Nothing. The Base64 decoder holds your input in the page's memory, so closing or reloading the tab clears it, and it saves nothing in this browser.
It takes the standard and the URL-safe alphabet, with or without = padding, ignores spaces and line breaks, and drops a data:...;base64, prefix. Anything else stops with a message naming the first character it can't read.
Yes: drop a text file that holds the Base64 on the input. The file is read as text and decoded, so a saved encoding doesn't need pasting.
Press Swap once there is a result and the same tool becomes the Base64 encoder, with the decoded text moved into the input.
Closest to the Base64 decoder: Base64 encoder, Base64 to file, File to Base64, Base32 decoder. Each opens on its own page, free and in the browser.
The Base64 decoder is one of 32 in its group. The group's page, /tools/encoding, lists them all.
The tool is free. Its interface is built from shadcn.io's own components (Button, Input, Slider and the rest of the registry under /ui), which come in React, Vue, Svelte and Solid. Pro adds the blocks and templates for the product around it.
4.9 out of 5 from 150+ developers
Build the product around it
Every block, template and icon, installed by your AI agent in your theme. The tools stay free.
Get Pro





