Fantacy
人工智能,智能运营,智能客服,企业知识管理系统(Kmaster,SuperKM)

Base64编码,是网络传输过程中常用的一种编码,使用预先定义好的64个字符,来编码二进制或文本数据。

编码原理为:
将待编码数据依次取出3个字节的数据(共24位),每6位为一个编码单元,编码为4个Base64字符
例如:
设编码表(BaseTable)为ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/
那么对字符串abc的编码过程如下:
1。abc的二进制表示为:
    01100001     01100010    01100011
2。将其按六位为一个单元拆分为
    011000    010110    001001    100011
    这样得到4个2进制数值
    分别为十进制的24,22,9,35
3。从编码表中取出分别第25,23,10,36个字符(所有+1,因为下标从0开始)
    组成Base64字串,即YWJj

每次3个字节循环取出所有数据,分别编码并将结果字串连接
例如:
待编码字串为abcqwe
BaseTable同上
1。每次取三个字节数据,分别为abc和qwe
2。将abc编码得到YWJj
3。将qwe编码得到cXdl
4。连接编码结果,得到整个字串编码结果YWJjcXdl

如果最后待编码字串不足3位,以0代替补足三位进行编码,并以=补足编码结果
例如:
待编码字串为qweab
BaseTable同上
1。每次取三个字节数据,分别为qwe和ab,其中ab不足三位
3。将qwe编码得到cXdl
3。将ab编码:
    1。abc的二进制表示为:
        01100001     01100010    
        用0补足后得到:
        01100001     01100010  00000000
    2。按没6bit为一单元进行编码
        011000    010110    001000   000000
    3。前三单元对应编码表YWI,最后一位,用=来代替
    4。编码为YWI=
4。整体编码为cXdlYWI=


   

posted on 2006-04-19 13:07  calmzeal  阅读(660)  评论(1编辑  收藏  举报