1.有关Base64的介绍:Base64这个术语最初是在“MIME内容传输编码规范”中提出的。Base64不是一种加密算法,虽然编码后的字符串看起来有点加密的赶脚。它实际上是一种“二进制到文本”的编码方法,它能够将给定的任意二进制数据转换(映射)为ASCII字符串的形式,以便在只支持文本的环境中也能够顺利地传输二进制数据。例如支持MIME的电子邮件应用,或需要在XML中存储复杂数据(例如图片)时。

要实现Base64,首先需要选取适当的64个字符组成字符集。一条通用的原则是从某种常用字符集中选取64个可打印字符,这样就能避免在传输过程中丢失数据(不可打印字符在传输过程中可能会被当做特殊字符处理,从而导致丢失)。例如,MIME的Base64实现选用了大写字母、小写字母和0~9的数字作为前62个字符。其他实现通常会沿用MIME的这种方式,而仅仅在最后2个字符上有所不同,例如UTF-7编码。

BASE64可以解决什么问题:我们知道在计算机中的字节共有256个组合,对应就是ascii码,而ascii码的128~255之间的值是不可见字符。而在网络上交换数据时,比如说从A地传到B地,往往要经过多个路由设备,由于不同的设备对字符的处理方式有一些不同,这样那些不可见字符就有可能被处理错误,这是不利于传输的。所以就先把数据先做一个Base64编码,统统变成可见字符,这样出错的可能性就大降低了。

对证书来说,特别是根证书,一般都是作Base64编码的,因为它要在网上被许多人下载。电子邮件的附件一般也作Base64编码的,因为一个附件数据往往是有不可见字符的。

让我来举个例子:一个xml当中包含另一个xml数据,此时如果将xml数据直接写入显然不合适,将xml进行适当编码存入较为方便,事实上xml当中的字符一般都是可见字符(0-127之间),但是由于中文的存在,可能存在不可见字符,直接将字符打印在外层xml的数据中显然不合理,那么怎么办呢?

可以使用base64进行编码,然后存入xml,解码反之

其实还有个办法,将byte的值写在xml当中,空格或者,分开,这样也可以将byte数据传入,不过这样更浪费空间,并且不易保存.

另一个,比如http协议当中的key value字段,必须进行URLEncode 不然出现的等号可能使解析失败 空格也会使http请求解析出现问题,比如 请求行就是以空格来划分的 POST /guowuxin/hehe HTTP/1.1

以上来源百度百科and互联网其他资料

2.学号20201211 转化为MjAyMDEyMTE=

姓名:王聪 转化为:546L6lGq

最新文章

  1. (转)WHY DEEP LEARNING IS SUDDENLY CHANGING YOUR LIFE
  2. 如何使用Xcode6 调试UI,Reveal
  3. hash_map vs unordered_map vs map vs unordered_set
  4. Pair Project: Elevator Scheduler [电梯调度算法的实现和测试]:思考题——谢勤政11061197
  5. URAL1009
  6. c# gzip解压缩
  7. .net ADF 中 Ajax 的调用过程.
  8. 让Safari使用Chrome的代理
  9. HDU 1518 Square 搜索
  10. 使用matplotlib绘制多轴图
  11. MongoDB添加用户验证
  12. 小程序引入百度api天气预报
  13. java maven compiler设置默认1.8
  14. Android为TV端助力 VelocityTracker 速度追踪器的使用及创建
  15. 电脑如何用HDMI连接电视
  16. 手机app数据的爬取之mitmproxy安装教程
  17. NOIP 普及组 2013 表达式求值
  18. shell脚本中冒号
  19. Xcode 安装插件管理器
  20. A mail sent to Google chromium.org Groups for Help

热门文章

  1. Vue 之 浏览本地图片功能
  2. springboot 配置springmvc?
  3. 微信小程序之多选功能
  4. Spring中NESTED和REQUIRED_NEW传播行为的区别
  5. SpringBoot集成AOP
  6. Visual Studio 下error C2471: 无法更新程序数据库
  7. Math 数学类
  8. python篇第8天【运算符】
  9. Linux性能优化实战(二)
  10. python数据类型内置方法