Base64编码详解
Base64编码详解
原理
Base64编码以24个二进制为一个基本计算单位。
Base64编码的由来是由于0-63都有唯一的对应字母,刚好有64个字符,所以叫Base64。
要想表示64个所有的字符,需要6(64=26)个比特,所以24个二进制可以分有4个6位二进制(4*6=24),将6个比特高位补0变为8个比特后,就可以表示4个字节。也就是说一个3字节数据(24Bit)经过base64编码后变为4字节数据。
计算过程
字符 | W | S | R | T | E |
|
|
|
对应ASCII码 | 87 | 83 | 82 | 84 | 69 |
|
|
|
3个8位二进制 | 01010111 | 01010011 | 01010010 | 01010100 | 01000101 | 补位 |
|
|
4个6位二进制 | 010101 | 110101 | 001101 | 010010 | 010101 | 000100 | 010100 | 补位 |
高位补0成4个8位二进制 | 00010101 | 00110101 | 00001101 | 00010010 | 00010101 | 00000100 | 00010100 | 补位 |
十进制 | 21 | 53 | 13 | 18 | 21 | 4 | 20 | 补位 |
Base64编码 | V | 1 | N | S | V | E | U | = |
Base64计算规则:
(1)24个二进制为一基本计算单位,将原数据以3个字节划分,不足则补位。
(2)3个字节的数据变为4个6位二进制数据,不足的补0;如果不是4的倍数,补位至4的倍数。
(3)高位补0至8个Bit,变为1个字节。
(4)计算十进制,并查找base64编码表得到Base64编码。
附录:Base64编码表
Base64编码表
码值 | 字符 | 码值 | 字符 | 码值 | 字符 | 码值 | 字符 |
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 | / |