Is the Base64 decoder free?
Yes. It is completely free to use, with no signup, no account, and no paywall.
Do I need to install anything?
No. It runs in any modern browser on desktop or mobile, with nothing to download and nothing to configure.
Does it stay local?
Yes. The text you paste is processed entirely in your browser and never uploaded to a server.
The decode failed. What went wrong?
There are three common causes. The string contains characters outside the standard Base64 alphabet, which usually means it is base64url and uses minus and underscore. The string was truncated, so its length is not a multiple of 4. Or the string contains line breaks or spaces picked up from a copy and paste. Clean the whitespace, check the alphabet, and confirm nothing was cut off in transit.
I decoded a string and got unreadable symbols. Why?
The decoded bytes are being interpreted as UTF-8 text, so this happens when the original data was not text at all. Base64 is frequently used to carry images, compressed archives, encrypted payloads, and protocol buffers. All of those decode to byte sequences that are not valid UTF-8, and you get replacement characters. The decode itself worked, but the content is binary and needs a different destination than a text box.
Does decoding a JWT here work?
Not directly. A JWT has three segments separated by dots and each segment is base64url-encoded, not standard Base64, so pasting a whole token here will fail. Use the JWT decoder instead: it splits the token, translates the base64url alphabet, restores the padding, and pretty-prints the header and payload as JSON.
Is my input uploaded anywhere?
No. Decoding runs locally in your browser through the built-in atob function and TextDecoder. This matters here more than for most tools, because the strings people decode are often session cookies, tokens, and config values. None of it is transmitted or stored.
How can I tell whether something is Base64 before decoding it?
Look for a character set limited to letters, digits, plus, and slash, a length divisible by 4, and possibly one or two trailing equals signs. That is a strong hint but not proof, because plenty of ordinary strings fit the pattern. The only reliable test is to decode it and see whether the result is meaningful.