--- obj: concept wiki: https://en.wikipedia.org/wiki/Base64 rfc: https://datatracker.ietf.org/doc/html/rfc4648 --- # Base64 Base64 is a group of similar binary-to-text encoding schemes that represent binary data in an [ASCII](ASCII.md) string format by translating it into a radix-64 representation. When the term "Base64" is used on its own to refer to a specific algorithm, it typically refers to the version of Base64 outlined in RFC 4648, section 4, which uses the following alphabet to represent the radix-64 digits, alongside = as a padding character: ``` ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ ``` A common variant is "Base64 URL safe", which omits the padding and replaces `+/` with `-_` to avoid characters that might cause problems in [URL](../internet/URL.md) path segments or query parameters. Base64 encoding schemes are commonly used to encode binary data for storage or transfer over media that can only deal with [ASCII](ASCII.md) text (or some superset of [ASCII](ASCII.md) that still falls short of accepting arbitrary binary data). This ensures that the data remains intact without modification during transport. Common applications of Base64 include: - [Email](../internet/eMail.md) via [MIME](MIME.md) - Storing complex data in [XML](XML.md) - Encoding binary data so it can be included in a [Data URL](../internet/Data%20URLs.md) ## Alphabet | Index | Binary | Char | | ------- | ------ | ---- | | 0 | 000000 | `A` | | 1 | 000001 | `B` | | 2 | 000010 | `C` | | 3 | 000011 | `D` | | 4 | 000100 | `E` | | 5 | 000101 | `F` | | 6 | 000110 | `G` | | 7 | 000111 | `H` | | 8 | 001000 | `I` | | 9 | 001001 | `J` | | 10 | 001010 | `K` | | 11 | 001011 | `L` | | 12 | 001100 | `M` | | 13 | 001101 | `N` | | 14 | 001110 | `O` | | 15 | 001111 | `P` | | 16 | 010000 | `Q` | | 17 | 010001 | `R` | | 18 | 010010 | `S` | | 19 | 010011 | `T` | | 20 | 010100 | `U` | | 21 | 010101 | `V` | | 22 | 010110 | `W` | | 23 | 010111 | `X` | | 24 | 011000 | `Y` | | 25 | 011001 | `Z` | | 26 | 011010 | `a` | | 27 | 011011 | `b` | | 28 | 011100 | `c` | | 29 | 011101 | `d` | | 30 | 011110 | `e` | | 31 | 011111 | `f` | | 32 | 100000 | `g` | | 33 | 100001 | `h` | | 34 | 100010 | `i` | | 35 | 100011 | `j` | | 36 | 100100 | `k` | | 37 | 100101 | `l` | | 38 | 100110 | `m` | | 39 | 100111 | `n` | | 40 | 101000 | `o` | | 41 | 101001 | `p` | | 42 | 101010 | `q` | | 43 | 101011 | `r` | | 44 | 101100 | `s` | | 45 | 101101 | `t` | | 46 | 101110 | `u` | | 47 | 101111 | `v` | | 48 | 110000 | `w` | | 49 | 110001 | `x` | | 50 | 110010 | `y` | | 51 | 110011 | `z` | | 52 | 110100 | `0` | | 53 | 110101 | `1` | | 54 | 110110 | `2` | | 55 | 110111 | `3` | | 56 | 111000 | `4` | | 57 | 111001 | `5` | | 58 | 111010 | `6` | | 59 | 111011 | `7` | | 60 | 111100 | `8` | | 61 | 111101 | `9` | | 62 | 111110 | `+` | | 63 | 111111 | `/` | | Padding | - | = |