ITPub博客

首页 > Linux操作系统 > Linux操作系统 > base64编码

base64编码

原创 Linux操作系统 作者:leecheery 时间:2008-08-26 11:53:30 0 删除 编辑

     这两天突然想看看编码的问题了,于是想到了BASE64,这个是为了解决网关问题传输MIME类型时对附件等进行加密的算法,具体的信息可以找一下hi.baidu的资料。

     这里介绍一下算法:

     当文件以字节进行编码时,使用了一个byte的8位,而base64使用了一个字节的后六位,前两位用0填充。这样三个8位的byte就可以转换为四个使用了6字节的byte。

    01001101  10011101  11100001

  就转换成 00010011    00011001  00110111  00100001 

  第一个字节右移两位,同时高位补两个0得到第一个6位字节( 01001101 -->  xx010011 &0011 1111(63)-->00010011)

 第一个原8位字节左移四位 或运算  第二个原8位字节右移四位(00010000  |  00001001-->00011001)

 第二个原8位字节左移两位 ( 011101xx&00111100-->00110100)  或运算  原第三个字节右移六位(xxxxxx11&00000011--->)00000011 得到 00110111

第四个六位字节既是原第三个八位字节的后六位 (11100001 &00111111)-->00100001 

  就转换成 00010011    00011001  00110111  00100001  变成int既是 19,25,55,33对应的加密字符为 T ,Z,3,j

返回base64加密结果TZ3j

如果    

01001101  10011101  

则  00010011    00011001  00110100   这个地方缺少一组,对应加密字符为=

19,25,52,空白  --》T ,Z,0,=

返回base64加密结果TZ0=

 

解密相反的方法即可:TZ0=--》19,25,52,空白-》00010011    00011001  00110100   --》

010011,01。1001,1101。00--》01001101  10011101

     

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/15116811/viewspace-434673/,如需转载,请注明出处,否则将追究法律责任。

下一篇: 工厂模式
请登录后发表评论 登录
全部评论

注册时间:2008-08-22

  • 博文量
    69
  • 访问量
    100607