· 4 min read
How to Encode and Decode Base64 Text
Heshan Fernando
Co-founder & COO
You’re debugging an API response and one of the fields is a blob of characters like SGVsbG8gd29ybGQ= — clearly not human-readable, but not obviously broken either. Or you need to embed a small binary value in a config file or URL and someone mentions “just base64 it.” Either way, you don’t want to open a REPL and write three lines of code just to encode or decode one short string.
Base64 shows up constantly in web development — auth tokens, embedded images, API payloads — but it’s rarely something people need to hand-encode often enough to remember the exact command-line incantation for their OS and shell.
What Base64 actually does
Base64 is a way of representing binary data (or any byte sequence, including plain text) using only 64 printable ASCII characters — letters, digits, plus, and slash. It’s not encryption and it’s not compression; it’s a reversible re-encoding that makes arbitrary data safe to include somewhere that expects plain text, like a URL, an email header, or a JSON string. Anyone can decode it back to the original with no key or secret required.
The “URL-safe” variant swaps the two characters that have special meaning in URLs (+ and /) for URL-friendly alternatives (- and _), which matters when the encoded string needs to travel inside a URL or filename without needing extra escaping.
Why people get stuck here
- Assuming Base64 is encryption. It’s not — anyone with the encoded string can decode it instantly, so it should never be relied on to hide anything sensitive.
- Standard vs. URL-safe confusion. Decoding a URL-safe Base64 string with a standard decoder (or vice versa) produces garbage or an outright error, because the character sets differ slightly.
- Padding characters. The trailing
=characters some Base64 strings end with are padding, not part of the data — stripping them incorrectly, or expecting them where they’ve been omitted, breaks decoding. - Encoding the wrong layer. Base64-encoding an already-encoded string, or forgetting a value was already encoded upstream, produces double-encoded gibberish that’s confusing to debug.
What a good Base64 tool looks like
Encodes and decodes in one place
Switching direction shouldn’t require a different tool or command — encode and decode should be two modes of the same simple interface.
Offers the URL-safe variant
Since URL-safe Base64 is common in tokens and URLs specifically, having that option available (rather than only standard Base64) avoids a second manual character-swap step.
Handles errors clearly
If you paste something that isn’t valid Base64, the tool should say so plainly rather than silently returning a wrong or empty result.
Common mistakes to avoid
- Treating a Base64 string as a secure way to hide sensitive data — it’s trivially reversible and should never substitute for real encryption.
- Mixing up standard and URL-safe Base64 when decoding a string sourced from a URL or token.
- Forgetting that Base64-encoded output is roughly a third longer than the original input, which matters if you’re working against a size limit.
- Double-encoding a value that’s already been Base64-encoded upstream, producing a string that decodes into more Base64 rather than the original text.
- Assuming Base64 output is human-readable in any meaningful sense — it’s designed to be safely transportable, not legible.
How to do it with Base64 Encoder Decoder
Online Tool Store’s Base64 Encoder Decoder runs entirely in your browser.
- Open the Base64 Encoder Decoder tool.
- Choose encode or decode mode.
- Paste your text or Base64 string.
- Toggle URL-safe if the string is destined for a URL or filename, then copy the result.
Because it processes everything locally, it’s safe to use even for values you’d rather not paste into an unfamiliar server-side tool.
Frequently asked questions
Is Base64 the same as encryption?
No. Base64 is an encoding, not encryption — it has no key or secret, and anyone can decode it instantly. If you need to keep data confidential, use actual encryption; Base64 only makes binary-safe data transportable as text.
Why does my Base64 string end with one or two equals signs?
Those are padding characters, added when the input length isn’t a clean multiple of 3 bytes. They’re a normal, expected part of standard Base64 output, not an error.
What’s the difference between standard and URL-safe Base64?
Standard Base64 uses + and / as two of its 64 characters, both of which have special meaning inside a URL. URL-safe Base64 replaces them with - and _ so the encoded string doesn’t need extra escaping when used in a URL or filename.
Final thought
Base64 is a transport format, not a security measure — reach for it when you need to safely embed arbitrary data as text, and reach for real encryption when you actually need to keep something confidential.