base64编码和解码,为了避免数据 明文传输 或者 存储 。
比如
好好学习
→ base64编码 → 5aW95aW95a2m5Lmg
→ base64解码→ 好好学习
码值 | 二进制 | 字符 | 码值 | 二进制 | 字符 | 码值 | 二进制 | 字符 |
---|---|---|---|---|---|---|---|---|
0 | 0 | A | 26 | 11010 | a | 52 | 110100 | 0 |
1 | 1 | B | 27 | 11011 | b | 53 | 110101 | 1 |
2 | 10 | C | 28 | 11100 | c | 54 | 110110 | 2 |
3 | 11 | D | 29 | 11101 | d | 55 | 110111 | 3 |
4 | 100 | E | 30 | 11110 | e | 56 | 111000 | 4 |
5 | 101 | F | 31 | 11111 | f | 57 | 111001 | 5 |
6 | 110 | G | 32 | 100000 | g | 58 | 111010 | 6 |
7 | 111 | H | 33 | 100001 | h | 59 | 111011 | 7 |
8 | 1000 | I | 34 | 100010 | i | 60 | 111100 | 8 |
9 | 1001 | J | 35 | 100011 | j | 61 | 111101 | 9 |
10 | 1010 | K | 36 | 100100 | k | 62 | 111110 | + |
11 | 1011 | L | 37 | 100101 | i | 63 | 111111 | / |
12 | 1100 | M | 38 | 100110 | m | |||
13 | 1101 | N | 39 | 100111 | n | |||
14 | 1110 | O | 40 | 101000 | o | |||
15 | 1111 | P | 41 | 101001 | p | |||
16 | 10000 | Q | 42 | 101010 | q | |||
17 | 10001 | R | 43 | 101011 | r | |||
18 | 10010 | S | 44 | 101100 | s | |||
19 | 10011 | T | 45 | 101101 | t | |||
20 | 10100 | U | 46 | 101110 | u | |||
21 | 10101 | V | 47 | 101111 | v | |||
22 | 10110 | W | 48 | 110000 | w | |||
23 | 10111 | X | 49 | 110001 | x | |||
24 | 11000 | Y | 50 | 110010 | y | |||
25 | 11001 | Z | 51 | 110011 | z |
base64 采用6位二进制表示 不足部分补足0(2的6次方为64)
字符 采用8位二进制表示
6和8的最小公倍数为24, 故3位字符经过base64编码后变成了4位 例如:111 base64→ MTEx
H 二进制 01001000
H前6位 010 010
对应 18,18对照base64编码表为S
H后2位 00
加上补充的 0000
得到 000 000
对应 0,0对照base64编码表为A
后续补充的0用=号补足。
和编码类比理解
[Ref] 彻底搞懂base64加解密原理和隐写技术