Base64简单原理
base64要求把每三个8bit的字节转换为四个6bit的字节(即3*8 = 4*6 = 24)
1.例如我们有一个中文字符“中国(gb2312)”,转为十进制为:中-->54992,国-->47610
2.将 中和国 的十进制转为对应的二进制位:1101011011010000 和 1011100111111010
3.逢6位划分后:110101 101101 000010 111001 111110 10
此时按照base64编码的规则,要满足3*8位拆分位4*6位。“中国”转为二进制后一共32位,需要“拼够”48位,所以不够的位需要在后面补0,最终逢六位划分后为:
110101 101101 000010 111001 111110 100000 000000 000000
根据(48-32)/48=1/3得出,通过base64编码后,位数要比原来多1/3。
4. 根据base64编码表,找出对应的值
110101 101101 000010 111001 111110 100000 000000 000000
53 45 2 57 62 32 = =
根据base64编码表转换后结果为:
1 t c 5 + g = =
如果最终按六位划分后全是000000,则对应的编码为=(ps:之前一直不明白一些公钥的最后几位都是=)
5. 根据java代码将base64解码出来
public static void main(string[] args) throws ioexception {
base64decoder base64decoder =new base64decoder();
system.out.println(new string(base64decoder.decodebuffer("1tc5+g=="),"gb2312"));
}
输出结果为:中国
6.附base64编码表:
上一篇: python的浅拷贝和深拷贝
下一篇: 第一章 开始学习C/C++