BASE64是一种编码方式,通常用于把二进制数据编码为可写的字符形式的数据。
这是一种可逆的编码方式,从编码的方式即可逆推出解码的方式。

编码后的数据是一个字符串,其中包含的字符为:
A-Z、a-z、0-9、+、/
共64个字符:26 + 26 + 10 + 1 + 1 = 64。【注:其实是65个字符,“=”是填充字符】。

大体流程是这样的

  • 1.字符 通过ascii码表转化 成数字
  • 2.数字转化成二进制编码
  • 然后参考如下:
64个字符需要6位来表示,表示成数值为0~63。

  • 这样,长度为3个字节的数据经过Base64编码后就变为4个字节。
    例:字符串“Xue”经过Base64编码后变为“WHVl”。

  • 长度为3个字节的数据位数是83=24,可以精确地分成64。
    如果数据的字节数不是3的倍数,则其位数就不是6的倍数,那么需要就不能精确地划分成6位的块,此时,需在原数据后面添加1个或2个零值字节,使其字节数是3的倍数。然后,在编码后的字符串后面添加1个或2个等号“=”,表示所添加的零值字节数。
    例:字符串“Xu”经过Base64编码后变为“WHU=”。

    字符串“X”经过Base64编码后变为“WA==”。