Base64 Decoder
Decode Base64 strings to readable text.
Your data is never sent to any server.
The Base64 decoder turns a Base64 string back into the text it contains. Paste the string, with or without line breaks and with or without its trailing padding, and read the result instantly, accents and emoji included.
How to recognise a Base64 string
It only contains letters, digits, + and /, its length is usually a multiple
of 4 and it often ends in = or ==. If you see SGVsbG8= or eyJhbGciOi…, it
is almost certainly Base64. The second pattern is very common: eyJ is how {"
is encoded, so a string that starts that way holds JSON.
| Base64 | Text |
|---|---|
SGVsbG8= | Hello |
SGVsbG8gd29ybGQ= | Hello world |
eyJpZCI6NDJ9 | {"id":42} |
Standard Base64 and Base64 URL
The standard version uses + and /, which have a special meaning in web
addresses. That is why JWTs, many APIs and URLs use a variant that replaces them
with - and _ and often drops the padding. This decoder works with the
standard version: if your string has dashes or underscores, change them to +
and / first.
How to use Base64 to Text
- 1
Paste the Base64 string
Spaces and line breaks are ignored, so you can paste it just as it appears in an email or a log.
- 2
Read the text
The decoded text appears instantly. If the string contains characters that are not part of Base64, you get a warning instead of a result.
- 3
Copy the result
Press the copy button to take the text.
Frequently asked questions
What do I do if it says the Base64 is not valid?
Look for characters outside the Base64 alphabet, which only allows letters, digits, + and /, with one or two equals signs at the end. The usual culprit is a dash or an underscore, which gives away the Base64 URL variant, or a stray piece of text picked up while copying.
Can I use it to read a JWT?
Yes, with one extra step. A JWT is three parts separated by dots, encoded in Base64 URL. Copy only the middle part, replace every - with + and every _ with /, and paste it here: you will see the JSON with the token's claims.
Do I need the trailing = padding?
No. If it is missing, the tool adds it before decoding, because many strings are sent without it.
Why do I get strange symbols?
Because what is inside is not text but a file, such as an image or a PDF. For those, use the Base64 to file option in the switch, which downloads it in its own format.