Base64 is a method of representing binary data using 64 printable characters. Since 2^6 = 64, each 6 bits is a unit corresponding to a printable character.
Base64 is often used in situations where text data is typically processed to represent, transmit, and store binary data, including MIME emails and complex XML data.
Base64 encoding requires converting three 8-bit bytes (3*8=24) into four 6-bit bytes (4*6=24), then padding each 6-bit byte with two leading zeros to form an 8-bit byte. If the remaining characters are less than three bytes, they are padded with zeros. The output character is " = ", so the encoded text may end with one or two "=" characters.
To ensure that the output encoded bits are readable characters, Base64 uses an encoding table for unified conversion. The size of the encoding table is 2^6 = 64 , hence the name Base64 .
Printable characters in Base64 include the letters AZ and az , and the numbers 0-9 , for a total of 62 characters. In addition, two printable symbols vary between different systems.
The following are the basic steps of Base64 encoding:
Decoding Base64 encoding is the reverse of encoding. Each Base64 character is converted into a corresponding 6-bit binary value, and then these 6-bit values are combined into the original binary data.
Base64 encoding has the following characteristics:
| code value | character | code value | character | code value | character | code value | character | |||
|---|---|---|---|---|---|---|---|---|---|---|
| 0 | A | 16 | Q | 32 | g | 48 | w | |||
| 1 | B | 17 | R | 33 | h | 49 | x | |||
| 2 | C | 18 | S | 34 | i | 50 | y | |||
| 3 | D | 19 | T | 35 | j | 51 | z | |||
| 4 | E | 20 | U | 36 | k | 52 | 0 | |||
| 5 | F | 21 | V | 37 | l | 53 | 1 | |||
| 6 | G | 22 | W | 38 | m | 54 | 2 | |||
| 7 | H | 23 | X | 39 | n | 55 | 3 | |||
| 8 | I | 24 | Y | 40 | o | 56 | 4 | |||
| 9 | J | 25 | Z | 41 | p | 57 | 5 | |||
| 10 | K | 26 | a | 42 | q | 58 | 6 | |||
| 11 | L | 27 | b | 43 | r | 59 | 7 | |||
| 12 | M | 28 | c | 44 | s | 60 | 8 | |||
| 13 | N | 29 | d | 45 | t | 61 | 9 | |||
| 14 | O | 30 | e | 46 | u | 62 | + | |||
| 15 | P | 31 | f | 47 | v | 63 | / |