🔓

Base64 Decoder

Decode Base64 strings back to readable text, including URL-safe variants. Free, instant, and nothing leaves your browser.

✓ Free forever✓ No signup✓ 100% private — runs in your browser
Base64 Encoder / Decoder
Encode text or files to Base64, or decode Base64 strings. Supports URL-safe encoding.
Text Input
File → Base64
📁
Click or drop file here
Max 5MB · Any file type
Output
Result appears here…

Base64 strings turn up constantly in developer work — inside JWTs, in HTTP Authorization headers, in data URIs, in API payloads and config files. Decoding one tells you what it actually contains.

How to use the Base64 Decoder

  1. Paste the Base64 string
  2. Click Decode
  3. If the result is unreadable, the original data was binary rather than text
  4. Copy the decoded output

Recognising Base64 in the wild

Base64 looks like a long run of mixed-case letters and digits, often ending in one or two = characters. Its length is always a multiple of 4 when padded.

Hyphens and underscores instead of plus and slash mean the URL-safe variant — most commonly a JWT, which is three Base64url segments separated by dots. For those, use the JWT Decoder, which splits the segments and formats the JSON for you.

Why decoding sometimes produces garbage

Base64 decodes to bytes. Those bytes are only readable text if the original input was text. Decode an encoded PNG and you get the file's raw bytes rendered as meaningless characters — that is correct behaviour, not a failure.

Truncated input also produces garbage or an error: because Base64 works in 4-character groups, losing characters from the middle corrupts everything after that point. If a decode looks wrong, check you copied the whole string.

Frequently asked questions

Why does my decoded output look like nonsense?

The encoded data was binary — an image, a compressed file, or a cryptographic signature. Those decode to bytes with no text representation. This is expected.

Can I decode a JWT with this?

You can decode each segment individually after splitting on the dots, but the JWT Decoder does it in one step and formats the resulting JSON.

Is the decoding done on a server?

No, entirely in your browser. Important here, because Base64 strings you need to inspect often contain tokens or credentials.

What if decoding fails with an error?

The input is not valid Base64. Common causes are a truncated copy, stray whitespace or line breaks in the middle, or characters from a different encoding scheme such as hex.