当前位置: 移动技术网 > IT编程>开发语言>Java > Base64简单原理

Base64简单原理

2018年11月16日  | 移动技术网IT编程  | 我要评论

赶集网保定,藏妃殿,银豆网公众号金融照妖镜

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编码表:

 

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网