Base64 Encoder & Decoder
Encode text or files to Base64, or decode a Base64 string back to plain text. Runs entirely in your browser — nothing is sent to any server.
Standard Base64
Uses +, /, and = padding. Safe for APIs, HTML data URIs, and email.
URL-safe Base64
Replaces + with - and / with _, no padding. Used in JWTs and OAuth tokens.
File Encoding
Drop any file to get its Base64 data URI — data:image/png;base64,… — ready to embed in HTML or CSS.
Frequently Asked Questions
What is Base64 encoding?
Base64 converts binary data into a string of 64 printable ASCII characters (A–Z, a–z, 0–9, +, /). It is used to safely transmit binary data — images, files, tokens — over systems that only support text, such as JSON APIs, HTML data URIs, and email.
What is URL-safe Base64?
Standard Base64 uses + and / which have special meaning in URLs. URL-safe Base64 replaces + with - and / with _, and removes = padding. This variant is used in JWTs, OAuth tokens, and any context where the encoded value appears in a URL.
How do I decode a Base64 string?
Paste your Base64 string into the input field and click Decode. If the string uses URL-safe characters (- and _ instead of + and /), enable the URL-safe toggle first.
Can I encode a file to Base64?
Yes. Drag and drop any file onto the input area, or click Upload file. The tool outputs the full Base64 data URI (e.g. data:image/png;base64,…). No file is uploaded to any server.
Is my data sent to a server?
No. All encoding and decoding happens in your browser using the built-in btoa() and atob() JavaScript APIs. Nothing leaves your device.