Base64 Encoder Decoder Online
Encode text or binary data to Base64 or decode Base64 strings back to text. Handles UTF-8, emoji, Base64URL (JWT-style), and data URIs entirely in your browser.
Built and maintained by Muhammad Tayyab — CEO & Founder, Mergemain.
Why Use Base64 Encoder Decoder Online?
Base64 is the lingua franca of "binary data in a text-only world" — JWT payloads, HTTP Basic auth headers, CSS data URIs, email attachments, and webhook signatures all use it. When you're debugging an API response or pulling apart a token, you need to peek at the decoded value quickly, and you definitely don't want to paste a potentially-sensitive string into a random online form. Running Base64 in the browser keeps everything local: your access keys and tokens stay on your machine.
How to Use Base64 Encoder Decoder Online
- Enter or paste the text you want to encode in the input field.
- Click 'Encode' to convert your text to Base64 format, or paste a Base64 string and click 'Decode' to convert it back to readable text.
- Copy the result with the copy button. The tool handles UTF-8 text correctly.
- Toggle Base64URL mode when working with JWTs or OAuth tokens — it replaces +/= with -_ so the value is safe inside URLs.
- Use the Decode side to read incoming Base64 from API logs, network tabs, or webhook payloads without exposing them to a third-party server.
Worked Examples
Encoding HTTP Basic auth credentials
Encode: demo-user:S3cretPass!
ZGVtby11c2VyOlMzY3JldFBhc3Mh
Prefix with "Basic " and paste into the Authorization HTTP header.
Decoding a JWT header
Decode: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9
{"alg":"HS256","typ":"JWT"}JWT header and payload segments are Base64URL-encoded — this tool handles both standard and URL-safe variants.
Encoding UTF-8 text with emoji
Encode: Deploy shipped 🚀
RGVwbG95IHNoaXBwZWQg8J+agA==
The encoder uses UTF-8 byte representation, so emoji and accented characters round-trip correctly.
About Base64 Encoder Decoder Online
Base64 is a way to represent binary data as plain text using a 64-character alphabet (A-Z, a-z, 0-9, plus + and /). Because every output character is printable ASCII, Base64 strings survive channels that mangle or reject raw bytes: JSON payloads, email bodies, HTTP headers, CSS files. This tool encodes your text into Base64 or decodes a Base64 string back into readable text, entirely inside your browser. It handles the details that trip people up: UTF-8 text (so emoji, accented characters and non-Latin scripts round-trip correctly), Base64URL mode for JWTs and OAuth tokens (which swaps + and / for - and _, and drops padding), and data URIs for embedding images, fonts and other assets directly in HTML or CSS. The tool earns its keep in debugging workflows. Backend developers paste token payloads from logs to see what a JWT actually contains. Frontend developers encode small images into CSS data URIs to cut HTTP requests, then decode them back when inspecting someone else's stylesheet. Mobile and API developers pass binary blobs through JSON by encoding them first. DevOps engineers decode the Base64 blobs hiding in Kubernetes secrets, webhook signatures and SAML assertions. If your day involves peeking inside encoded strings, this is the tab you keep open. The decisive advantage of a browser-based tool is privacy. Base64 strings routinely contain credentials, session cookies and API keys, and pasting them into a random server-side encoder means handing someone else's secrets to a stranger. Here nothing leaves your device, so the tool is safe for production tokens. It is also instant and free with no account, which matters when you are mid-debugging and need an answer in two seconds rather than after a signup flow. Compared with terminal commands like openssl or browser-console atob, you get correct UTF-8 handling out of the box instead of corrupted emoji, plus a Base64URL mode that those one-liners do not offer. A few practical traps are worth knowing. First, Base64 and Base64URL are different alphabets: decoding a JWT segment with the standard variant fails on the - and _ characters, so match the mode to the source. Second, padding (= signs) is optional in many URL-safe variants, and a missing = or two is normal rather than an error. Third, encoding works on bytes, not characters: emoji become multi-byte UTF-8 sequences, which is why the output looks much longer than the input. Finally, copied strings often arrive wrapped with line breaks or stray whitespace from logs and emails; the decoder tolerates common whitespace, but anything outside the 64-character alphabet is rejected, so strip obvious junk before decoding.
Troubleshooting & Common Issues
Decoding gives garbled output or "Invalid character"
Check that the input is a complete Base64 string with no wrapping whitespace, line breaks, or trailing characters. The decoder strips common whitespace automatically but rejects invalid characters (anything outside A-Z, a-z, 0-9, +, /, =). If you're pasting from a JWT, use the Base64URL variant — standard Base64 treats '-' and '_' as invalid.
Encoded output is missing "=" padding
Padding equals signs are only added when the input byte-length isn't a multiple of 3. One trailing byte produces two '=' padding characters, two trailing bytes produce one '='. Some Base64URL variants omit padding entirely — both are valid and can be decoded.
Non-ASCII characters come back wrong after a round-trip
Make sure both the encoder and decoder interpret the bytes as UTF-8. If your source is ISO-8859-1 or Windows-1252 and the decoder assumes UTF-8, accented characters will corrupt. Convert source text to UTF-8 before encoding for safe cross-platform use.
I need Base64URL for a JWT or OAuth token, not standard Base64
Base64URL replaces '+' with '-' and '/' with '_', and omits padding. After encoding with this tool, run a search-and-replace (+ → -, / → _) and strip trailing '=' characters. The decoder tolerates both variants automatically.
Frequently Asked Questions
What is Base64 encoding used for?
Base64 is used to safely transmit binary data through text-based protocols. Common uses include embedding images in HTML/CSS, encoding email attachments (MIME), HTTP Basic Authentication headers, encoding JWT payloads, and storing binary data in JSON or XML.
Is Base64 encryption?
No. Base64 is an encoding, not encryption. Anyone can decode a Base64 string back to the original data without any key or password. Never use Base64 to protect passwords, API keys, or sensitive data — use proper encryption (AES, ChaCha20) or a secrets manager.
Why does Base64 increase file size?
Base64 encoding increases data size by approximately 33% because it represents every 3 bytes of binary data as 4 ASCII characters. This trade-off is accepted for the convenience of text-safe transmission across channels that can't handle raw bytes.
What is the maximum size for Base64 encoding?
There's no hard protocol limit, but practical limits depend on where the encoded value is used. Data URIs embedded in CSS should stay under 50KB for performance; HTTP headers should stay under a few kilobytes; JWTs are typically under 8KB. For large files, prefer a direct binary upload instead of embedding Base64.
Why is Base64 used in data URIs?
Data URIs (data:image/png;base64,…) let you embed an image, font, or other binary asset directly in HTML or CSS without a separate HTTP request. Base64 is used because data URIs must be text-safe. It's a performance trade-off — fewer network requests at the cost of larger source files and zero caching of the asset.
What's the difference between Base64 and Base64URL?
Base64URL is a URL-safe variant that replaces '+' with '-' and '/' with '_', and usually omits the trailing '=' padding. This makes the encoded string safe to use in URLs, filenames, and HTTP headers. JWTs and many OAuth tokens use Base64URL. This tool accepts both variants when decoding.
Is my text sent to a server when I use this tool?
No. The Base64 encoder and decoder run entirely client-side in your browser. Your input never leaves your device, making the tool safe for tokens, API keys, session cookies, and other sensitive data you might encounter while debugging.
Guides & Further Reading
Hypit: Clone Any Viral Video with AI Agents, One Command, 100 Variants
Hypit is a free, open-source system that gives AI agents like Claude Code and Codex a language and toolchain for video. Drop in any viral video and your agent clones it as a complete, editable workflow, then ships 100 variants from a single command.
9 min readOpenVid: Studio-Quality Demo Videos and 3D Mockups, Right in Your Browser
OpenVid is a free, open-source web app that turns a screen recording or an uploaded clip into a studio-quality demo: device mockups, 3D transforms, cinematic zooms with a virtual camera, more than a hundred backgrounds, multi-track audio and export up to 4K MP4, all running in your browser.
9 min readRandom String Generation: Passwords, API Keys & Secure Tokens Explained
A practical guide to generating random strings for passwords, API keys, and tokens. Why Math.random() is dangerous, what crypto.getRandomValues() does differently, how much entropy you actually need, and an opinionated quick-reference for every common use case.
11 min readChrome WebMCP: The Complete Developer Guide to Making Your Website AI Agent-Ready
Chrome WebMCP lets websites expose structured tools directly to AI agents — replacing screenshot-based browsing with direct function calls. This practical guide covers the declarative HTML API, imperative JavaScript API, setup in Chrome 146 Canary, real-world use cases, and how WebMCP compares to MCP.
14 min readRelated Tools
URL Encoder Decoder Online
Percent-encode URL components or decode encoded strings. Supports encodeURIComponent and encodeURI modes for query parameters, full URLs, and handles Unicode characters correctly.
JWT Decoder
Decode JSON Web Tokens to inspect the header, payload, and claims — all in-browser so tokens never leave your device. Flags expired tokens automatically and handles HS256 and RS256.
JSON Formatter Online
Format, beautify, and validate JSON with syntax highlighting, a collapsible tree view, auto-fix for trailing commas and single quotes, search, and JSON-to-XML/CSV/YAML conversion.
UUID / GUID Generator
Generate cryptographically secure v4 UUIDs (GUIDs) in bulk using crypto.getRandomValues(). Perfect for database primary keys, API request IDs, and test fixtures — 122 bits of entropy.
Was this tool helpful?