您的位置:首页 > 其它

为什么说Base64是用于编码而不是用于加密?

2015-05-03 19:30 483 查看
在写上一遍博文“为什么Base64编码有回车换行符”的时候,就留意到网上有人说Base64是用于编码,而不是加密的,我也查看了公司的文档,发现上面也是用加密,那就以此展开,说说是Base64加密,还是Base编码。

先上结论:没有Base64加密,只有Base64编码。

展开说明:

Base64编码解决了什么问题?

Base64编码解决了将不可打印的内容变成可打印。

Base64编码如何实现把不可打印的内容变成可打印?

RFC 2045规定了Base64编码后的字符都是由标准键盘上面的常规字符组成。(因为这一点,所以Base64只是编码)



下面举两个实际环境:

例子1:Base64编码后的字符串因为都是常规字符,在网关之间传递不会产生Unicode字符串不能识别或者丢失的现象。

例子2:如果要发送附件到后台(附件有可能是图片,文档,视频和音频),而这些附件不是什么重要文件,那可以用Base64进行编码,后台收到后可以存入数据库或者XML文件。

注意:编码后的数据比原始数据略长,为原来的4/3 。因为在RFC 2045规定,每76个字符,还需要加上一个回车换行。

参考资料:

RFC-2045:https://www.ietf.org/rfc/rfc2045.txt

维基百科:http://zh.wikipedia.org/zh/Base64

http://coderbee.net/index.php/basis/20130910/459

http://zhidao.baidu.com/link?url=dQcq-LO8Ce13fbILeXzpQcmIjbk32XrfzW7UEVMIYoG5WB55zyyVbMzK94iJxrWTIrhWWywIwQymiv2FxLsA9a

http://baike.baidu.com/link?url=JVf9oJsF6poZUw4Wus8ygpsJ2Tj0uP6V48gr5Fw5yI1h1Ga2D0A4IWUkGkF_nbkVtOli6Gns4QbUAW9uSvBmdK
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息