Toolkitbar

Base64 Decoder — Free, Nothing Uploaded

Read what a Base64 string actually says.

Runs on your device What you paste is processed by your own browser. It is never sent to a server, and it is not stored anywhere after you leave the page.

Short answer

A Base64 string can be decoded back to text for free in a web browser with nothing uploaded. The decoder accepts both the standard and the URL-safe alphabet, restores missing padding, and ignores the line breaks that a string copied out of a terminal or an email arrives with. The bytes are then read as UTF-8, so accented letters, CJK text and emoji come back intact.

At a glance

AcceptsBase64, standard or URL-safe
ProducesPlain text (UTF-8)
ProcessingIn your browser
PriceFree, no limits
AccountNot required

Most Base64 that needs decoding arrives second-hand: pasted out of a log, copied from a header, pulled from the middle of a JWT. It rarely arrives clean, so this decoder is deliberately forgiving about the things that are not part of the data — whitespace, line wrapping at 64 or 76 columns, and padding that was stripped somewhere along the way.

It is not forgiving about the alphabet, because that is the one thing an error can usefully point at. A character outside the Base64 set means either that the string was truncated in transit or that it was never Base64 to begin with — and a decoder that silently skipped it would hand back plausible-looking nonsense instead.

How to use it

  1. 1

    Paste the Base64

    Standard or URL-safe, padded or not, on one line or wrapped across many.

  2. 2

    Convert

    The decoded text appears below. Invalid input is reported rather than half-decoded.

  3. 3

    Read or copy it

    Copy the result to the clipboard, or download it as a text file.

  4. 4

    Format it further if it is JSON

    Base64 often wraps a JSON payload. The JSON formatter will indent it from here.

Frequently asked questions

Does it accept URL-safe Base64?

Yes, automatically. Hyphens and underscores are mapped back to plus and slash before decoding, so you do not have to know which variant produced the string.

My string has no = at the end. Will it still decode?

Yes. Padding is restored before decoding, which is why tokens from systems that strip it — JWTs among them — work here without editing.

Why is the result full of question-mark characters?

Because those bytes were never text. Base64 can carry any bytes at all, including a PNG or a zip file, and reading those as UTF-8 produces replacement characters. The string decoded fine; it simply was not a string to begin with.

Is the decoded text sent anywhere?

No. The decoding happens in your tab, and neither the input nor the result leaves it. Base64 in a log line is frequently a credential, which is precisely why this tool has no server behind it.

Related tools

Browse all developer tools