欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Base64简单原理

程序员文章站 2022-05-18 22:55:17
Base64要求把每三个8bit的字节转换为四个6bit的字节(即3*8 = 4*6 = 24) 1.例如我们有一个中文字符“中国(gb2312)”,转为十进制为:中-->54992,国-->47610 2.将 中和国 的十进制转为对应的二进制位:‭1101011011010000‬ 和 ‭1011 ......

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

Base64简单原理