base64原理解析及应用

一、概述

       Base64就是一种基于64个可打印字符来表示二进制数据的方法,在网络上最常见的用于传输8Bit字节码的编码方式之一;网络传送渠道并不支持所有的字节,例如传统的邮件只支持可见字符的传送,像ASCII码的控制字符就 不能通过邮件传送;  这样用途就受到了很大的限制,比如图片二进制流的每个字节不可能全部是可见字符,所以就传送不了;最好的方法就是在不改变传统协议的情 况下,做一种扩展方案来支持二进制文件的传送。把不可打印的字符也能用可打印字符来表示。

二、原理

        1、索引表

   2.转换步骤

 a)将待转换的字符串每三个字节分为一组,每个字节占8bit,那么共有24个二进制位。
            b)将上面的24个二进制位每6个一组,共分为4组。
            c)每组再转化为十进制,根据Base64编码对照表(见上图)获得对应的值。         

 

 

三、应用

       用途最广的还是HTML内嵌Base64编码图片,当然邮箱的SMTP也使用,使用的是不标准的base64

    Data URI scheme支持的类型有:
  data:,文本数据
  data:text/plain,文本数据
  data:text/html,HTML代码
  data:text/html;base64,base64编码的HTML代码
  data:text/css,CSS代码
  data:text/css;base64,base64编码的CSS代码
  data:text/javascript,Javascript代码
  data:text/javascript;base64,base64编码的Javascript代码
  data:image/gif;base64,base64编码的gif图片数据
  data:image/png;base64,base64编码的png图片数据
  data:image/jpeg;base64,base64编码的jpeg图片数据
  data:image/x-icon;base64,base64编码的icon图片数据

四、误区

可能会有人在不理解Base64编码的情况下,将其误用于数据加密或数据校验。

Base64是一种数据编码方式,目的是让数据符合传输协议的要求。标准Base64编码解码无需额外信息即完全可逆,即使你自己自定义字符集设计一种类Base64的编码方式用于数据加密,在多数场景下也较容易破解。

猜你喜欢

转载自blog.csdn.net/sailor125/article/details/89512174