Base64
The second common way of representing binary data is base64. As the name suggests, this uses an encoding with 64 different symbols, each one representing 6 bits of the underlying data.
Just like hex encoding splits the underlying data into groups of 4 bits and then maps them to a small subset of symbols (16 in total), base64 uses groups of 6 bits and a set of 64 symbols. There are multiple character sets and specifications for base64 encoding, but the most common ones are as follows:
- The "Base64 standard encoding," as defined by RFC 4648 Section 4, uses the following 64 symbols:
ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz01234 56789+/
- The "Base64 URL encoding," as defined by RFC 4648 Section 5, uses the following 64 symbols:
ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz01234 56789-_
The two encodings are very similar (and, unlike hex, these are case-sensitive), but they differ in the symbols used to encode the decimal numbers...