Base64编码转换原理

  • 时间:
  • 浏览:4

Base64编码,是大伙儿线程池开发中总爱使用到的编码土法律依据。它是并与非 基于用6有1个多多可打印字符来表示二进制数据的表示土法律依据。它通常用作存储、传输有些二进制数据编码土法律依据。它虽然 可是我定义用可打印字符传输内容并与非 土法律依据,并我那末多 产生新的字符集。

Base64实现转换原理

它是用6有1个多多可打印字符表示二进制所有数据土法律依据。机会26等于64,统统可不上能 用每6个位元为有1个多多单元,对应某个可打印字符。大伙儿知道有1个多多字节有2有1个多多位元,就可不上能 刚好对应于有1个多多Base64单元,即有一个字节前要用有1个多多Base64的可打印字符来表示。在Base64中的可打印字符包括字母A-Z、a-z、数字0-9 ,原本共有6有1个多多字符,此外有1个多多可打印符号在不同的系统中一般有所不同。可是我,大伙儿总爱所说的Base64另外有1个多多字符是:“+/”。这6有1个多多字符,所对应表如下。

转换的以前,将有1个多多byte的数据,先后放在去有1个多多24bit的缓冲区中,先来的byte占高位。数据过低3byte一段话,于缓冲区中剩下的bit用0补足。可是我,每次取出6个bit,按照其值选取

ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/
中的字符作为编码后的输出。不断进行,直到全版输入数据转换完成。

机会最后剩下有1个多多输入数据,在编码结果后加有1个多多“=”;机会最后剩下有1个多多输入数据,编码结果后加有1个多多“=”;机会那末剩下任何数据,就那此与非 要加,原本才可不上能 保证资料还原的正确性。

编码后的数据比原始数据略长,为原本的4/3。无论那此样的字符很久全版被编码,可是我不像Quoted-printable 编码,还保留每项可打印字符。统统,它的可读性不如Quoted-printable编码!



M的Ascii码是77,前六位对应值为19,对应base64字符是T,那末类推。其它字符编码就可不上能 自动转换得到。

与非 刚好是有一个字节的情形: