6 bits · 64 glyphs · no padlock

Base64 is a shipping crate. Anyone who peels the tape reads the cargo.

Search base64 tools and half the results talk like you bought a lock. You did not. You bought a crate. Three bytes go in. Four text glyphs come out. Mail servers, JSON fields, and HTML attributes stop mangling the payload because the alphabet is boring on purpose.

A to Z. a to z. 0 to 9. Plus. Slash. Equals for leftovers. That is the whole machine. The converters on Toolexe pack and unpack in the browser. Nothing is uploaded. Local execution is a convenience. It is not a vault.

Brass and iron mill on a workshop bench, punch cards entering a hopper, yellow ticket stubs leaving the output slot
The mill in one picture. Eight-bit cards in. Six-bit tickets out. The word Man becomes TWFu. No lock is involved.
Live millUTF-8 in the tab
8-bit bytes
6-bit groups
Packed string

Open wooden crate stenciled BASE64 beside a closed steel padlock tagged ENCRYPT, same table, different jobs

Peel the tape. The cargo is still in plain sight.

This is the judgment most hubs bury. Base64 is transport. Encryption is a lock. Hashing is a one-way stamp. Compression is a smaller box. Mixing those four jobs is how API keys end up in git as a "scrambled" string anyone decodes in one click.

If you needed a secret, you needed a key. You do not have one here.

Use the crate when a pipe only accepts text. Email. A JSON field. An HTML attribute. A log line. Stop using the crate to hide a password, to shrink a video, or to "sign" a payload. Those jobs live elsewhere.

Not a hash Not a cipher Not compression Not a file format

Three bytes walk in. Four glyphs walk out.

Take the textbook trio Man. Three ASCII letters. Three bytes. Twenty-four bits.

Source
M a n
8-bit bytes
01001101
01100001
01101110
6-bit tickets
010011 19 T
010110 22 W
000101 5 F
101110 46 u

The mill you typed in above should already show TWFu. RFC 4648 uses foobar as its round-trip sample, which encodes to Zm9vYmFy. Same machine. Longer word. If your output disagrees, the encoder is not doing Base64.

Need a sentence packed for a JSON field on api.toolexe.com? Open Text to Base64. Holding the crate and want the sentence back? Use Base64 to Text. Skip the twenty-line script for a twenty-byte payload.

Padding is packing foam.

One leftover byte produces two glyphs and ==. Two leftover bytes produce three glyphs and =. The extra zero bits are not payload. Drop those equals signs only when the far end asked for Base64URL. JWT does. A random REST field usually does not.

A 200 KB icon is a passenger. A 12 MB photo is a hostage.

Every Base64 string is longer than the bytes it wraps. About a third longer once the input is more than a couple of bytes. Tiny leftovers look worse because padding fills the last quartet.

Inline a small PNG with PNG to Base64 or a JPEG icon with JPEG to Base64 when you want a data URL and you accept the cache cost. A hero photograph does not belong in CSS. Encode the file with File to Base64 only when a text pipe is the only path, then restore it with Base64 to File.

Browser converters on this site stall on huge video. That is a ceiling, not a tease. A desktop encoder still exists for a 400 MB capture. Do not paste it here.

What the far end asked for

Pick the converter from the destination, not from a feature grid. The Base64 tool index lists every packer and peeler. The waybills below are the tickets we keep seeing.

Block sitting on the clipboard from a webhook? Peel it in Base64 Decode before you trust the Content-Type the sender wrote.

Peel the clipboard block

Same cargo, three labels

People say Base64 the way they say ASCII: one word, several contracts. Mixing them is the usual production outage. A plus surviving in a query string. A hyphen arriving at a decoder that never heard of URL-safe. A PEM newline treated as corruption.

Standard Base64, Base64URL, and MIME wrapping compared
Dialect Alphabet Padding Line wrap Where it lives
RFC 4648 standard A-Z a-z 0-9 + / Equals signs to a multiple of 4 None required Most APIs, HTML data URLs, XML text nodes
Base64URL A-Z a-z 0-9 - _ Usually omitted None. The point is a URL token. JWT segments, some OAuth blobs, filenames
MIME Base64 Same as standard Equals signs, same as RFC 4648 76 glyphs, then CRLF Email attachments, many PEM cousins at 64

Suspicious about illegal glyphs, mixed plus and hyphen, or missing padding? Run Validate Base64 before you hand the string to a parser. Whitespace and URL-safe swaps belong in Normalize Base64 or Repair Base64. Guessing with a regex in a ticket is how the next outage gets a sequel.

Need a friendlier alphabet, case-insensitive, no plus or slash? That is Base32, sitting in this same category on purpose. Open Base32 Encode when a human has to read the token aloud. Do not call the output Base64. The alphabets disagree.

The packing floor

Three doors. Pack when you hold the original. Peel when the crate already arrived. Inspect when the string looks legal and still fails downstream.

Incidents from the loading dock

Glossary questions hide the real tickets. These are the ones that waste an afternoon.

  1. INC-01

    The decoder rejected a JWT payload. Is the token fake?

    Usually no. JWT segments are Base64URL with padding stripped. Translate hyphens to plus, underscores to slash, then add equals signs until the length divides by 4. After that, a standard decoder reads the JSON. A rejected paste is a dialect mismatch far more often than a forged token.

  2. INC-02

    I pasted a data URL and the image tool printed garbage.

    The prefix is not Base64. Cut everything through the comma in data:image/png;base64, so only the alphabet remains. Leave the prefix on when you are dropping the string into HTML or CSS. The two jobs look similar. They are not.

  3. INC-03

    Is Base64 encryption, hashing, or compression?

    None of the three. Encryption needs a key. Hashing destroys the original on purpose. Compression shortens. Base64 lengthens by about a third and leaves the cargo readable to anyone who knows the alphabet, which is public. Treating TWFu as a secret is a mistake we still see in config files.

  4. INC-04

    Why is the encoded file a third larger?

    Three bytes hold 24 bits. The alphabet only encodes 6 bits per glyph, so four glyphs take over. Padding equals signs make tiny payloads look even worse. A 1-byte input becomes 4 glyphs. That is the tax. Pay it for transport. Do not pay it to store a 12 MB photo inside a stylesheet.

  5. INC-05

    Do these converters upload the paste?

    No. Packing and peeling run in the browser. Skip live tokens, private keys, and session cookies anyway. A screenshot of a decoded JWT in a ticket outlives the incident. Local execution is not a license to paste production secrets into a tab.

  6. INC-06

    The string has line breaks. Is it corrupt?

    MIME and PEM insert line breaks on purpose, 76 or 64 glyphs to a row. RFC 4648 allows decoders to ignore whitespace. A strict alphabet check that treats a newline as illegal will reject a valid email attachment. Fold first, or use a decoder that strips whitespace, then judge the rest.

If the paste is not a crate

Seven-bit source text still belongs on the ASCII tools hub. Integrity checks are hashes, not encodings. Those live with the cryptography tools. The converters here move bytes through text pipes. They do not prove who sent the box.

Bookmark the mill. Pack from the original. Peel from the clipboard. Stop calling a 64-glyph alphabet a secret.