Encode text to Base64 or decode Base64 back to text, instantly and privately in your browser. Full UTF-8 support.
Text • encode/decode
Encoding and decoding share the page, so any result can be pasted straight back to confirm it round-trips to the text you started with — the quickest check that nothing was mangled.
Results are recalculated on every keystroke, with no submit step and no page reload, so a value can be adjusted until the answer looks right rather than guessed once.
Everything runs in your browser — no account, no uploads, nothing leaves your device.
Base64 is an encoding scheme that represents binary data using 64 printable ASCII characters (A–Z, a–z, 0–9, + and /). It was designed so binary content — images, files, keys — can travel safely through systems built for text, such as email (MIME), JSON payloads, HTML data URIs and HTTP headers. Base64 is encoding for safe transport, not encryption, so it adds no security on its own.
Developers across the US reach for Base64 every day: embedding small images in CSS/HTML, encoding API tokens and Basic-Auth credentials, storing binary blobs inside JSON, and inspecting JWTs. This converter encodes and decodes instantly with full UTF-8 support, entirely in your browser — paste, read, copy. Nothing is uploaded, so it is safe for tokens and private data.
Base64 encodes binary data using only 64 printable ASCII characters, so that arbitrary bytes can survive transmission through systems that expect text — email bodies, JSON fields, data URIs. It is emphatically not encryption: the transformation is public, reversible and offers no confidentiality whatsoever, a misunderstanding that appears in real security incidents with depressing regularity. The mechanism regroups bits: three bytes (24 bits) become four 6-bit groups, each mapped to one character. That 3-to-4 expansion is why base64 output is always about 33% larger than its input.
Take 3 bytes (24 bits) → split into 4 groups of 6 bits → map each to the alphabetAlphabet: A–Z (0–25), a–z (26–51), 0–9 (52–61), + (62), / (63)Pad with "=" so output length is a multiple of 4Output size ≈ input × 4/3where:
Assumptions: Encoding, not encryption — anyone can decode it instantly. Never use it to protect credentials. The 33% size increase matters when embedding images as data URIs.
Follow two bytes through the bit-regrouping, including the padding.
Result"Hi" encodes to "SGk="
A longer input avoids padding: "Hello" (5 bytes) encodes to SGVsbG8=, still with one pad because 5 is not a multiple of 3. The trailing "=" characters are the quickest visual signal that a string is base64 rather than a hash or a token.