现在的位置: 首页 > 综合 > 正文

Base64 编码

2013年04月18日 ⁄ 综合 ⁄ 共 904字 ⁄ 字号 评论关闭

Base64要求把每三个8Bit的字节转换为四个6Bit的字节(3*8 = 4*6 = 24),
然后把6Bit再添两位高位0,组成四个8Bit的字节,也就是说,转换后的字符串,在理论上将要比原来的长1/3。

编码的规则:
1.把3个字符变成4个字符。
2.每76个字符加一个换行符。
3.最后的结束符也要处理。
如果最后剩下两个输入数据,在编码结果后加1个“=”;
如果最后剩下一个输入数据,编码结果后加2个“=”;
如果没有剩下任何数据,就什么都不要加,这样才可以保证资料还原的正确性。

如何进行base64编码 
   Base64 使用US-ASCII子集的65个字符, 每个字符用6位表示 
   对于文本串,编码过程如下。例如"men": 
   先转成US-ASCII值. 

   "m"十进制 109 
   "e"十进制 101 
   "n"十进制 110 
   二进制 : 
   m 01101101 
   e 01100101 
   n 01101110 

   三个8位连起来是24位 
   011011010110010101101110 

   然后分成4个6位 
   011011 010110 010101 101110 

   现在得到4个值,十进制为 
   27 22 21 46 

  对应的 Base64 字符是 : b W V u 
  编码总是基于3个字符,从而产生4个Base64字符。 

  如果只是2个字符的数据,使用特殊字符"="补齐Base64的4字。 
  如,编码"me" 
  01101101 01100101 
  0110110101100101 
  011011 010110 0101 
  111111 (与,补足6位) 
  011011 010110 010100 
  b W U 
  b W U = ("=" 补足4字符) 
  于是 "bWU=" 就是"me"的Base64值. 

  如果只是2个字符的数据,如编码 "m" 
  01101101 
  011011 01 
  111111 
  011011 010000 
  b Q = = 
于是 "bQ==" 就是"m"的Base64值.  

参考链接:http://staratsky.iteye.com/blog/314651

http://zh.wikipedia.org/wiki/Base64

抱歉!评论已关闭.