Your data never leaves this tabRead the guide

Free Base64 Decoder Online

Decode any Base64 string back to plain text or view raw bytes — handles data URIs, URL-safe Base64, and missing padding automatically.

Base64 Input
Decoded Output

How it works

1

Paste your Base64

Paste any Base64 string — including data URIs (data:image/png;base64,...), JWT segments, or raw Base64.

2

Auto-detection

The decoder strips data URI prefixes, normalises URL-safe characters (- and _), and adds missing padding automatically.

3

View the result

The decoded output appears as UTF-8 text. Switch to Hex view to inspect raw bytes for binary data.

4

Copy or download

Copy the decoded text to clipboard or download it as a file. Your data never leaves your browser.

Common use cases

JWT token inspection

JWT headers and payloads are Base64URL-encoded. Paste a JWT segment to read the JSON claims directly without a separate JWT tool.

HTTP Basic Auth debugging

HTTP Basic Auth sends credentials as Base64-encoded "username:password". Decode the Authorization header value to verify the credentials.

API response inspection

Some APIs return binary data or certificates as Base64. Decode them to read the content or save as a file.

Data URI inspection

Paste a full data:image/png;base64,... URI to decode and inspect the raw image bytes or save the decoded binary.

Frequently asked questions

What is the difference between Base64 and Base64URL?

Base64URL replaces + with - and / with _ and removes = padding to make it URL-safe. JWT tokens use Base64URL. This decoder handles both formats automatically.

Why does my decoded output look like garbled text?

The Base64 string encodes binary data (an image, PDF, or certificate) rather than text. Switch to Hex view to inspect the raw bytes.

Can I decode a data URI directly?

Yes — paste the full data:image/png;base64,... string and the decoder strips the prefix automatically before decoding.

What does "Invalid Base64" mean?

The input contains characters outside the Base64 alphabet, or the length is wrong after removing whitespace. Check for copy-paste errors or truncated strings.

Is my data sent anywhere?

No. Decoding uses the browser's built-in atob() function. Everything runs locally — your data never leaves your tab.