Runs locally in your browser
Base64 Decoder
Decode Base64 back into readable UTF-8 text so you can inspect tokens and payloads. Decoding never leaves this browser tab.
Paste a Base64 blob from a JWT fragment, a data URI, or a log line and recover the original UTF-8. This page only decodes.
atob and TextDecoder run locally. Invalid alphabets surface an error instead of sending the blob elsewhere.
How to use
- Paste the Base64 string.
- Decode.
- Read the UTF-8 text or the error if the alphabet is invalid.
How it works
Whitespace around the blob is trimmed first. The decoder then maps Base64 to bytes and interprets those bytes as UTF-8.
Broken padding or characters outside the alphabet fail fast. URL-safe Base64 with minus and underscore may need a swap before decode.
Examples
JWT payload peek
The middle segment of a JWT is Base64URL. After a character swap you can read the JSON claims as text.
Log token
A config value that looks like random ASCII often decodes to a readable username or JSON blob.
FAQ
Why do I see Invalid Base64?
The string has characters outside the alphabet or broken padding. Trim and check plus, slash, and equals.
Can this decode images?
It decodes to UTF-8 text. Binary image bytes will look garbled in the text box.
Is decode the reverse of the encoder on this site?
Yes for standard Base64 of UTF-8 text produced by the companion encoder.
Is the blob uploaded?
No. Decoding stays in this tab.
Related tools
- Base64 EncoderEncode UTF-8 text to Base64 for data URIs, headers, and embeds. Encoding uses the Web APIs in this tab, with no server hop.
- URL DecoderDecode percent-encoded URLs and query strings back to readable text. Invalid sequences are flagged without a network call.
- JSON FormatterPretty-print JSON with a chosen indent so API payloads are readable. Formatting runs in your browser and never leaves this tab.
- JSON ValidatorCheck whether JSON is syntactically valid and see the line and column of the first error. Validation stays in your browser.
- URL EncoderPercent-encode query values and path segments with encodeURIComponent. Spaces become %20. Encoding stays in your browser.