How to recognise Base64
Base64 uses A–Z, a–z, 0–9, + and /, and pads to a multiple of four with =. If a string contains - or _ it is the URL-safe variant, which this page decodes without any conversion on your part. If it contains any other character, or its length is not a multiple of four once padding is accounted for, it is not Base64 — a hex digest is 0–9 and a–f only, and a UUID has dashes in fixed places.
A worked example
Decoding SGVsbG8sIHdvcmxkIQ== gives "Hello, world!". Drop the trailing == and most decoders fail; this one tells you the padding is wrong rather than returning an empty box, which is the difference between a two-second fix and ten minutes of guessing.
Base64 is not a secret
It is an encoding designed to move binary data through systems that only accept text. It hides nothing: this page reverses it instantly, and so can anyone else. Treat anything you decode here as readable by whoever holds the string.
Going the other way? Encode text to Base64 — or switch direction with the tabs above without losing what you pasted.
More free text tools
- Word counterLive word count with reading time, sentences and paragraphs.
- Character counterCharacters with and without spaces, against X, SMS and SEO limits.
- Letter counterCount letters only, with a frequency breakdown for puzzles.
- Text cleanerStrip extra spaces, blank lines and invisible characters in one pass.
- Remove line breaksRejoin text that a PDF or email broke into short lines.
- Text compareDiff two versions and see what was added, removed and left alone.
Frequently asked questions
Is this Base64 decoder free?
Yes, with no account and no length limit.
Why does my string fail to decode?
Usually one of three things: it is URL-safe Base64 using - and _ instead of + and /, it lost its trailing = padding somewhere, or it was never Base64 at all — a hex digest or a JWT signature looks similar at a glance. The error names which it is rather than returning nothing.
Can I decode a JWT here?
You can decode each part. A JWT is three Base64url segments separated by full stops — header, payload, signature. Paste one segment at a time: the first two decode to readable JSON, and the third is a binary signature that will not.
Is Base64 encryption?
No, and this matters. Base64 is an encoding, not a cipher — anyone can reverse it in a second, as this page demonstrates. A password or key stored as Base64 is stored in plain sight.
Does it handle emoji and accents?
Yes. Decoding produces UTF-8 text, so emoji, accented letters and non-Latin scripts come back as they went in rather than as mojibake.
Is the string uploaded?
No. Decoding happens in your browser, which is why it is safe to paste a token or a config blob here.