base64
Encode text to Base64 or decode Base64 strings back to plain text — instantly, in the browser. Standard and URL-safe modes. Zero server, zero storage.
encode
Any UTF-8 text → Base64. Standard or URL-safe variant.
decode
Base64 string → readable text. Error flagged clearly.
zero server
Everything runs in the page via the browser's native btoa / atob. No uploads.
Binary data as printable text.
Base64 encodes arbitrary binary data as a sequence of 64 printable ASCII characters (A–Z, a–z, 0–9, +, /). Every 3 bytes of input become 4 characters of output — a 33% size increase, but the result is safe to embed in JSON, HTML, email, and HTTP headers.
Common uses: MIME email attachments, CSS data: URIs, JWT headers and payloads, HTTP Basic Auth credentials (user:pass → Base64), and binary blobs in REST APIs.
URL-safe Base64 replaces + with - and / with _, making the output safe in query strings and path segments without percent-encoding. JWTs use a URL-safe variant without trailing padding.
Base64 is encoding, not encryption. Anyone can decode it in seconds. Never use it to hide secrets.
Common questions.
Is it safe to paste sensitive data here?
Yes — everything runs in your browser. No data leaves your device. But remember: Base64 is not encryption. The encoded output is trivially reversible.
Standard vs URL-safe — which should I use?
Use URL-safe when the Base64 output will appear in a URL query parameter, path segment, or JWT. Use standard everywhere else (MIME, data URIs, HTTP Basic Auth).
Why does decoding my string fail?
Common causes: the input is URL-safe Base64 (switch the toggle), the string is missing padding (= at the end), or it contains line breaks added by email clients. Remove whitespace and try again.
Does Base64 work on binary files?
This tool handles UTF-8 text input. For binary files (images, PDFs), use the browser's built-in FileReader API or a server-side tool that reads raw bytes before Base64-encoding them.