Base64 Encoder / Decoder
Base64 represents binary data using only 64 printable ASCII characters (A–Z, a–z, 0–9, + and /). It lets you safely carry arbitrary bytes through systems built for text — HTTP headers, JSON fields, email bodies and data: URLs.
This tool encodes and decodes text using UTF-8, so emoji and non-Latin scripts round-trip correctly. It also supports Base64URL, the variant used in JSON Web Tokens (JWT) and URL parameters.
How to use
- Choose Encode, Decode, URL-Safe Encode or URL-Safe Decode.
- Paste your text or Base64 string into the input panel.
- The result appears instantly on the right. Use ⇄ Swap to feed the output back in and reverse the operation.
Standard vs URL-safe Base64
- Standard Base64 uses + and / and pads the end with =.
- Base64URL replaces + with - and / with _, and usually omits the = padding, so the result can be used in URLs and filenames without escaping.
- JWT headers and payloads are Base64URL-encoded — paste one segment of a token into URL-Safe Decode to read it.
Example
The text "Hello, World!" encodes to:
SGVsbG8sIFdvcmxkIQ==
Frequently asked questions
- Is Base64 encryption?
- No. Base64 is an encoding, not encryption. Anyone can decode it, so never use it to protect passwords or secrets.
- Why is the encoded output larger?
- Base64 stores every 3 bytes as 4 characters, so encoded data is about 33% larger than the original.
- Why do I get "Invalid Base64 string"?
- The input contains characters outside the Base64 alphabet, or it is Base64URL (with - and _). Try URL-Safe Decode instead.
Privacy
This tool runs entirely in your browser. The data you paste or open is processed locally and is never uploaded to or stored on our servers.