Free Base64 encoder and decoder. Convert text to Base64 or decode any Base64 string back to text (UTF-8 safe). Some people search this as 'base64 decrypt', but it's actually just decoding, not encryption. Supports URL-safe Base64 and handles missing padding automatically.
Base64 turns arbitrary bytes into text using a 64-character alphabet (A to Z, a to z, 0 to 9, plus + and /). It reads the input three bytes (24 bits) at a time and re-groups those bits into four 6-bit chunks, so every three bytes become four printable characters. When the input length is not a multiple of three, the output is padded with one or two = characters. That is why Base64 output is always about a third larger than the original and why it so often ends in an equals sign.
This tool encodes text (UTF-8) to Base64 and decodes Base64 back to text entirely in your browser, so nothing is uploaded. It also handles the URL-safe variant, which swaps + and / for - and _ so the value is safe inside a URL or filename, and it restores missing padding automatically when you decode.
Searches for "base64 decrypt" are common, but Base64 is an encoding, not encryption. There is no key and no secret: anyone can reverse it, which is exactly what the decode side of this tool does. Encoding only makes binary data survive transports that expect text, such as email bodies, JSON fields, data URLs, and HTTP headers. If you need confidentiality, encrypt the data first and Base64-encode the ciphertext, never rely on Base64 alone.
No. Base64 is a reversible encoding with no key or secret, so anyone can decode it. It is used to represent binary data as text, not to protect it. For confidentiality you need real encryption.
URL-safe Base64 replaces the two characters that cause problems in URLs and filenames, + and /, with - and _. The rest of the alphabet is identical. This tool reads and writes both the standard and URL-safe variants.
The = characters are padding. Base64 encodes three bytes into four characters, so when the input length is not a multiple of three, one or two = are added to fill out the final group. Decoders can usually restore missing padding on their own.
Yes. Text is converted to UTF-8 bytes before encoding and decoded back to UTF-8, so accented letters, emoji, and non-Latin scripts round-trip correctly. Everything runs locally in your browser.