X.509公钥证书也好,电子邮件数据也好,经常要用到Base64编码,那么为什么要作一下这样的编码呢?

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

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

那么Base64到底是怎样编码的呢?

简单来说,任何一个数据无非可以看作一个比特流,如01000100010011101100111010111100011001010......那么我们取6个比特为一组,计算它的ascii值,得到一个字符,这个字符肯定是可见字符,好,把它对应的字符写出来,再取6个比特,计算...,如此下去,直到最后,就完成了编码。

1.标准base64只有64个字符(英文大小写、数字和+、/)以及用作后缀等号;

2.base64是把3个字节变成4个可打印字符,所以base64编码后的字符串一定能被4整除(不算用作后缀的等号);

3.等号一定用作后缀,且数目一定是0个、1个或2个。这是因为如果原文长度不能被3整除,base64要在后面添加\0凑齐3n位。为了正确还原,添加了几个\0就加上几个等号。显然添加等号的数目只能是0、1或2;

4.严格来说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

又比如有些文本协议不支持不可见字符的传递,只能用大于32的可见字符来传递信息(协议规定)

base64真正的作用和意义相关推荐

  1. 液冷模块是什么?有什么作用与意义?

    液冷模块是什么?有什么作用与意义? 大到数据中心机房,小到一台服务器,大多数都采用风冷的制冷方式.但是众所周知,风冷的一个致命缺陷是冷却系统能耗高.噪音大以及散热效果不佳.因为空气与液态冷媒相比,输送 ...

  2. Oracle 实例崩溃恢复原理剖析 -- 检查点队列的作用与意义

    这篇文章是参考甲骨论老相老师的教学视频 http://v.youku.com/v_show/id_XNDAxMzI3NzI4.html 所做的学习笔记 检查点队列的内容已经在上一篇文章里讲过: htt ...

  3. 计算机在平面设计中的作用,比例设计在平面设计中的作用与意义

    随着互联网的不断发展,用户体验在设计师的产品设计中占有的比重越大了,而今天我们就一起来了解一下,比例设计在平面设计中的作用与意义. 一.平面设计中的比例是什么? 比例尺是指设计元素相对于其他元素的相对 ...

  4. Base64编码及其作用

    Base64编码的作用:由于某些系统中只能使用ASCII字符.Base64就是用来将非ASCII字符的数据转换成ASCII字符的一种方法.它使用下面表中所使用的字符与编码. 而且base64特别适合在 ...

  5. 宏定义_do{...} while(0U)宏定义的作用和意义

    转黄工的一篇文章,do while ,这个在Linux 里面也是经常见到,即使不是Linux ,只要涉及 C 语言的宏定义,就会出现,发出来给大家了解下. 写在前面 很多初学者,以及有一定工作经验的朋 ...

  6. python对于会计的好处_学好会计学的作用及意义

    学好会计学的作用及意义 学习会计学已经有三个月了,虽然大致了解了这门课程所涉及的内容及结构框架,但 目前还是处于入门状态. 会计源远流长, 是为了适应社会生产发展和加强经济管理. 提高经 济效益的需要 ...

  7. 利用计算机课堂导入的好处,小学语文课堂导入的作用和意义

    1 小学 语文课堂导入的作用和意义 课堂导入是课堂教学的第一关,课堂导入的方法多种多样,它对课堂教学的作用也是多方面的.下面是小学语文课堂导入的作用和意义,一起来跟小编了解下吧. 一.巧妙的导入,可以 ...

  8. 点线面的意义_浅析点线面在平面设计中作用与意义.doc

    浅析点线面在平面设计中作用与意义 浅析点线面在平面设计中作用与意义 [摘 要]形态语言千姿万态,但平面形态要素可归结为点.线.面,通常称之为"视觉三要素".点.线.面纯属感觉存在, ...

  9. 教师和计算机平面设计图谁更好一些,平面设计计算机论文,关于计算机平面设计课程教学策略对中职生就业的作用和意义相关参考文献资料-免费论文范文...

    导读:主要论述了平面设计计算机论文范文相关参考文献文献 (江苏省南京市玄武中等专业学校,江苏 南京 210000) [摘 要]随着信息技术的发展,计算机教学受到了广泛的关注,在此基础上,应社会及行业需 ...

最新文章

  1. Git 高频命令、版本回退、分支操作、文件修改删除、撤销、标签、远程仓库推送、拉取
  2. 如何发表自己的第一篇SCI?
  3. 交通银行签约第四范式,建设全行级统一AI能力平台
  4. VMWare 黑苹果卡在Logo页面
  5. 五十九、使用ZXing生成二维码
  6. filter与servlet对照
  7. Maven的Settings.xml配置文件解释
  8. java NumberPad实现_JAVA语言编程思想
  9. Scrapy 一些常用方法总结(调试,定时与测试)
  10. mybatis ------ 懒加载(八)
  11. Lex和Yacc实现句子识别
  12. ubuntu远程访问sftp服务器_ubuntu 下搭建sftp服务器
  13. 【408预推免复习】计算机网络(谢希仁第七版)第三章——数据链路层
  14. 2022年--读书笔记
  15. 读书笔记:吉檀迦利:致我们无处安放的心灵
  16. java生成word,html文件并将内容保存至数据库 (http://blog.163.com/whs3727@126/blog/static/729915772007325112014115/)
  17. 计算机如何进入桌面,电脑如何设置开机直接进入桌面 开机直接进入桌面设置...
  18. 阶跃折射率光纤的波动光学理论
  19. 基于SDM710 TP驱动
  20. 日语语法准备三:日语句子句型

热门文章

  1. 你觉得程序员最需要具备哪些软技能?
  2. JSP书香味道点餐系统课设
  3. 前端——使用JavaScript(jQuery)通过身份证号获取籍贯、生日、年龄、性别
  4. 拖拽即可创建HTML5网站的建站平台
  5. 音频频谱显示-显示音频文件静态频谱图(一)
  6. 查查自己五行属什么命
  7. 从USB数据采集板看技术造诣
  8. for the love,for the dream
  9. Android x86 4.4-r1 PC正式版发布
  10. JAVA基础个人总结,不喜勿喷