Base32 is the base-32 numeral system. It uses a set of 32 digits, each of which can be represented by 5 bits (25). One way to represent Base32 numbers in a human-readable way is by using a standard 32-character set, such as the twenty-two upper-case letters A–V and the digits 0-9. However, many other variations are used in different contexts.
This is an example of a Base32 number represented using the previously described 32-character set (IPFS CIDv1 in Base32 upper-case encoding): BAFYBEICZSSCDSBS7FFQZ55ASQDF3SMV6KLCW3GOFSZVWLYARCI47BGF354
. . . Base32 . . .
Base32 has a number of advantages over Base64:
- The resulting character set is all one case, which can often be beneficial when using a case-insensitivefilesystem, DNS names, spoken language, or human memory.
- The result can be used as a file name because it cannot possibly contain the ‘/’ symbol, which is the Unixpath separator.
- The alphabet can be selected to avoid similar-looking pairs of different symbols, so the strings can be accurately transcribed by hand. (For example, the
RFC 4648 symbol set omits the digits for one, eight and zero, since they could be confused with the letters ‘I’, ‘B’, and ‘O’.)
- A result excluding padding can be included in a URL without encoding any characters.
Base32 also has advantages over hexadecimal/Base16:
- Base32 representation takes roughly 20% – 21% less space. (1000 bits takes 200 characters, compared with 250 for Base16).
. . . Base32 . . .