![]() This version was described in RFC 2938 under the name "Base-32". Dobb's magazine in March 1999 as a proposed solution for solving the Y2K bug and referred to as "Double Hex". Triacontakaidecimal is another alternative design for Base 32, which extends hexadecimal in a more natural way and was first proposed by Christian Lanctot, a programmer working at Sage software, in a letter to Dr. For example, 12-16 would represent the machine address 400 (= 12 × 32 + 16). The "digits" were represented as decimal numbers from 0 to 31. ![]() Libraries to encode binary data in Crockford's Base32 are available in a variety of languages.Īn earlier form of base 32 notation was used by programmers working on the Electrologica X1 to represent machine addresses. It also excludes the letter U to reduce the likelihood of accidental obscenity. It excludes the letters I, L, and O to avoid confusion with digits. z-base-32 was used in the Mnet open source project, and is currently used in Phil Zimmermann's ZRTP protocol, and in the Tahoe-LAFS open source project.Īnother alternative design for Base32 is created by Douglas Crockford, who proposes using additional characters for a mod-37 checksum. It compactly encodes bitstrings whose length in bits is not a multiple of 8 and omits trailing padding characters. It also permutes the alphabet so that the easier characters are the ones that occur more frequently. It includes 1, 8 and 9 but excludes l, v and 2. Z-base-32 is a Base32 encoding designed by Zooko Wilcox-O'Hearn to be easier for human use and more compact. Excluding padding is useful when using base32 encoded data in URL tokens or file names where the padding character could pose a problem.Ĭhanging the Base32 alphabet, all alternative standards have similar combinations of alphanumeric symbols. RFC 4648 states that padding must be used unless the specification of the standard referring to the RFC explicitly states otherwise. In some circumstances padding is not required or used (the padding can be inferred from the length of the string modulo 8). The digits 0, 1 and 8 are skipped due to their similarity with the letters O, I and B (thus "2" has a decimal value of 26). It uses an alphabet of A– Z, followed by 2– 7. The most widely used Base32 alphabet is defined in RFC 4648. Length of Base64 and Base32 notations as percentage of binary data Also, because it encodes 5 bytes to 8 characters (rather than 3 bytes to 4 characters), padding to an 8-character boundary is a greater burden on short messages (which may be a reason to elide padding, which is an option in RFC 4648). (1000 bits takes 200 characters, compared with 250 for Base16).īase32 representation takes roughly 20% more space than Base64. Base32 representation takes roughly 20%–21% less space.5-bit allows storing 2 more characters per 32-bit integer (for a total of 6 instead of 4 with 2 bits to spare), saving bandwidth in constrained domains such as radiomeshes.īase32 also has advantages over hexadecimal/ Base16:. ![]() A result excluding padding can be included in a URL without encoding any characters. ![]() (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'.) The alphabet can be selected to avoid similar-looking pairs of different symbols, so the strings can be accurately transcribed by hand.The result can be used as a file name because it cannot possibly contain the '/' symbol, which is the Unix path separator.The resulting character set is all one case, which can often be beneficial when using a case-insensitive filesystem, DNS names, spoken language, or human memory.This is an example of a Base32 representation using the previously described 32-character set ( IPFS CIDv1 in Base32 upper-case encoding): BAFYBEICZSSCDSBS7FFQZ55ASQDF3SMV6KLCW3GOFSZVWLYARCI47BGF354 Advantages īase32 has a number of advantages over Base64: The rest of this article discusses the use of Base32 for representing byte strings, not unsigned integer numbers, similar to the way Base64 works. However, many other variations are used in different contexts. 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. It uses a set of 32 digits, each of which can be represented by 5 bits (2 5). Binary-to-text encoding scheme using 32 symbolsīase32 is the base-32 numeral system. ![]()
0 Comments
Leave a Reply. |