美文网首页
BASE64编码算法

BASE64编码算法

作者: CayChan | 来源:发表于2017-12-26 00:12 被阅读0次

    简单来说,就是用6 bit代替原来的8 bit(一个字节)。

    对"Man"编码为"TWFu":

    BASE64_1.png

    ASCII码

    标准ASCII码从0~127共128个字符。

    其中0~31、127这33个字符称为控制字符。如0为NUL,表示空字符;1为SOH,表示标题开始等。

    其余95个称为可打印字符。48为0,也就是数字0;65表示A,也就是大写字母A等。

    BASE64

    早期的一些传输协议只能传输可打印的ASCII码,但一个字节(8个bit)的可表示范围为0~255共256种,如果一个Byte的值超过127,那么就无法用ASCII码表示了。

    此时BASE64应运而生。

    BASE64算法只支持64个可打印字符。包含大写字母A~Z,小写字母a~z0~9共62个,另外两个字符在不同的系统中有所区别,标准BASE64编码中为+/

    因为一共只有64种字符,所以用6 bit足以表示所有的BASE64字符。

    编码

    BASE64用6 bit可以表示了原本的8 bit字符。但怎么用6 bit表示8 bit呢?增加字符的数量。6和8的最小公倍数是24,3 * 8 = 4 * 6。这样原来的3个字节可以用4个BASE64字符表示。也就是原来的3组拆成了4组来表示,每组转换成十进制,每个十进制对应一个BASE64字符。

    将原来的3个Byte写成24 bit,按照高位到低位每6位组成一个BASE64字符,不足24位时末位补0。当没有匹配的8 bit字符的时候,用=填充。

    对"M"编码结果为"TQ==":

    BASE64_2.png

    解码

    与编码相反,只需要将对应4组6 bit分隔成3组8 bit,每组8 bit再表示成ASCII字符即可。

    因此,BASE64算法只是一种编码算法,不能用于加密。

    Base64常用于在通常处理文本数据的场合,表示、传输、存储一些二进制数据。

    相关文章

      网友评论

          本文标题:BASE64编码算法

          本文链接:https://www.haomeiwen.com/subject/gfzrgxtx.html