Is the Base64 encoder 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.
Why is my Base64 string longer than the original text?
Base64 represents 3 bytes of input using 4 printable characters, which is a fixed 4-to-3 expansion, or about 33% growth, plus up to 2 padding characters. This is unavoidable: the whole point of the encoding is to survive systems that only handle a limited set of printable characters, and buying that safety costs a third of your bytes. If size matters, compress before you encode, not after, because Base64 output does not compress well.
Can I use Base64 to hide an API key or a password?
No. Base64 offers zero security. It is a public, reversible, standardised transformation, and every browser has a built-in atob() function that undoes it instantly. Treating a Base64 blob as a secret is one of the most common findings in a source code audit. Use a secrets manager or environment variables, and if the value must travel through an untrusted channel, encrypt it.
What is the difference between Base64 and base64url?
They encode identical data but use different characters for the last two symbols of the alphabet. Standard Base64 uses plus and slash, which have special meanings in URLs and file paths. Base64url substitutes minus and underscore, and usually drops the trailing equals-sign padding. JWTs, URL query parameters, and many APIs use base64url, so a standard Base64 string pasted into those places can decode incorrectly or fail outright.
Is anything sent to a server when I encode?
No. The encoding runs entirely in your browser using TextEncoder and the built-in btoa function. Nothing you type is transmitted, logged, or stored anywhere. Once the page is loaded you can disconnect from the network and it will keep working.
Why do some Base64 strings end in one equals sign and others in two?
Padding tells the decoder how many bytes were in the final, incomplete group. If your input length divides evenly by 3 there is no padding. If it leaves 2 bytes over you get one equals sign, and if it leaves 1 byte over you get two. This means you can often guess an input length modulo 3 purely from the padding, which is a small but real information leak.