BASE64是一种比较常见的编码格式,同时也对数据起到了一定保护作用。BASE64原理是将3个8位字节转为4个8位字节。不足3个字节最后使用‘=’代替。
BASE64编码表:
0 | A | 10 | K | 20 | U | 30 | e | 40 | o | 50 | y | 60 | 8 |
1 | B | 11 | L | 21 | V | 31 | f | 41 | p | 51 | z | 61 | 9 |
2 | C | 12 | M | 22 | W | 32 | g | 42 | q | 52 | 0 | 62 | + |
3 | D | 13 | N | 23 | X | 33 | h | 43 | r | 53 | 1 | 63 | / |
4 | E | 14 | O | 24 | Y | 34 | i | 44 | s | 54 | 2 | ||
5 | F | 15 | P | 25 | Z | 35 | j | 45 | t | 55 | 3 | ||
6 | G | 16 | Q | 26 | a | 36 | k | 46 | u | 56 | 4 | ||
7 | H | 17 | R | 27 | b | 37 | l | 47 | v | 57 | 5 | ||
8 | I | 18 | S | 28 | c | 38 | m | 48 | w | 58 | 6 | ||
9 | J | 19 | D | 29 | d | 39 | n | 49 | x | 59 | 7 |
具体算法:
1、首先将字符按3字符(7位)分开,最后少于3个字符的用0(0000 0000)表示。
如:"aaa" //a的ASCII码为97,及0110 0001
0110 0001 0110 0001 0110 000 1
2、将字符按6位进行分4个字节出来,每个字节开始2位用00填充。
结果:
-->0001 1000|0000 10110|0000 0101|0010 0001
3、通过BASE64编码表转换成对应字符
24 22 5 33
Y W F h
BASE64结果:"YWFh"
注:2进制转为10进制方法
1024 | 512 | 256 | 128 | 64 | 32 | 16 | 8 | 4 | 2 | 1 |
0 | 0 | 0 | 1 | 1 | 0 | 0 | 0 | |||
16 | 8 | |||||||||
24 |