Base64 is a group of similar binary-to-text encoding schemes that represent binary data in ASCII string format by translating it into a radix-64 representation. The term Base64 originates from a specific MIME content transfer encoding.

Each base64 digit represents exactly 6 bits of data. Thus, three 8-bit bytes (i.e. total 24 bits) can be represented by four 6-bit base64 digits.

A certain set of 64 characters chosen to represent the 64 place-values for the base varies between implementations. The overall strategy is to choose 64 characters, which are members of a subset common to most encodings, as well as printable. This combination leaves the data unlikely to be modified when transmitting through information systems such as e-mail, which have not traditionally been 8-bit clean. For example, the Base64 MIME implementation uses A - Z, A-z, and 0-9 for the first 62 values. Other variants share this property, but differ in the characters selected for the last two values; an example is UTF-7.

The earliest instances of this type of encoding were created for dial-up communication between systems running the same OS — for example, UUENCODE for UNIX, BinHex for the TRS-80 (later adapted for the Macintosh) — and could therefore make more assumptions about what characters were safe to use. For example, uuencode uses uppercase letters, numbers, and many punctuation marks, but not lowercase.