---
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 | -      | =    |