Base64加密原理如下:
1.将字符串中的每个字符转换成8位的2进制数(位数不够在高位加0,如a的2进制数为‘1100001’他是7为就变为‘01100001’),将每个字符的2进制数连在一起就得到一个一长串的0,1。
2.再在这一个串中6位6位的取数将其转化为10进制数,就可以在如下表中对应找到字符,这样就得到了加密后的字符串。
0 A 9 J 18 S 27 b 36 k 45 t 54 2 63 /
1 B 10 K 19 T 28 c 37 l 46 u 55 3 64 =
2 C 11 L 20 U 29 d 38 m 47 v 56 4
3 D 12 M 21 V 30 e 39 n 48 w 57 5
4 E 13 N 22 W 31 f 40 o 49 x 58 6
5 F 14 O 23 X 32 g 41 p 50 y 59 7
6 G 15 P 24 Y 33 h 42 q 51 z 60 8
7 H 16 Q 25 Z 34 i 43 r 52 0 61 9
8 I 17 R 26 a 35 j 44 s 53 1 62 +
(在处理最后一个6位时可能碰到,2进制字符串就剩2位或4位的情况,就在最后加4个0或2个0凑足6位,加4个0时就要在最后得到的加密后的字符串加2个'='号,2个就加一个‘=’号)
解密就时相反过程,就不详细叙述了。
下面是java实现Base64加密解密的代码: