Base64 编码


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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值