2.1。MIME(BASE64)专题

本文涉及的产品
密钥管理服务KMS,1000个密钥,100个凭据,1个月
简介:

什么是Base64编码?

按照RFC2045的定义,Base64的被定义为:Base64的内容传送编码被设计用来把任意序列的8位字节描述为一种不易被人直接识别的形式。

为什么要使用Base64编码?

在设计这个编码的时候,我想设计人员最主要考虑了3个问题:

  1. 是否加密?

  2. 加密算法复杂程度和效率?

  3. 如何处理传输?

加密是肯定的,但是加密的目的不是让用户发送非常安全的Email。这种加密方式主要就是“防君子不防小人”。即达到一眼望去完全看不出内容即可。基于这个目的加密算法的复杂程度和效率也就不能太大和太低。和上一个理由类似,MIME协议等用于发送电子邮件的协议解决的是如何收发电子邮件,而并不是如何安全的收发电子邮件。因此算法的复杂程度要小,效率要高,否则因为发送电子邮件而大量占用资源,路就有点走歪了。

但是,如果是基于以上两点,那么我们使用最简单的恺撒法即可,为什么Base64编码看起来要比恺撒法复杂呢?这是因为在电子邮件的传送过程中,由于历史原因,现只被允许传送ASCII字符,即一个8位字节的低7位。因此,如果您发送了一封带有非ASCII字符(即字节的最高位是1)的电子邮件通过有“历史问题”的网关时就可能会出现问题。网关可能会把最高位置为0!很明显,问题就这样产生了!因此,为了能够正常的传送电子邮件,这个问题就必须考虑!所以,单单靠改变字母的位置的恺撒之类的方案也就不行了。关于这一点可以参考RFC2046。基于以上的一些主要原因产生了Base64编码。

参考邮件正文Content-Transfer-Encoding:base64

OpenSSL - Base64

2.1.1。Linux命令base64

 

2.1.2。PHP的Base64

2.1.2.1。BASE64_ENCODE

BASE64_ENCODE

(PHP 3,PHP 4,PHP 5)

base64_encode - 使用MIME base64对数据进行编码

说明

字符串base64_encode(字符串数据)

base64_encode()返回使用base64对数据进行编码。设计此种编码是为了使二进制数据可以通过非纯8位的传输层传输,例如电子邮件的主体。

Base64编码的数据要比原始数据多占用33%左右的空间。

例子1. base64_encode()示例

			
		
			

此示例将显示:

VGhpcyBpcyBhbiBlbmNvZGVkIHN0cmluZw ==

例子2. stream_filter_append()示例

			


		
			

2.1.2.2。BASE64_DECODE

BASE64_DECODE

(PHP 3,PHP 4,PHP 5)

base64_decode - 对使用MIME base64编码的数据进行解码

说明

字符串base64_decode(字符串encoded_data)

base64_decode()对encoded_data进行解码,返回原始数据,失败则返回FALSE。返回的数据可能是二进制的。

例子1. base64_decode()示例

			
			
			

此示例将显示:

这是一个编码的字符串

2.1.3。Python Base64

编码:b64encode

			
			
			

此示例将显示:

'VGhpcyBpcyBhbiBlbmNvZGVkIHN0cmluZw =='

解码:

			
			
			

此示例将显示:

这是一个编码的字符串

2.1.4。perl base64

		

2.1.5。Java Base64




		



原文出处:Netkiller 系列 手札
本文作者:陈景峯
转载请与作者联系,同时请务必标明文章原始出处和作者信息及本声明。

目录
相关文章
|
6月前
|
XML JSON 编解码
HTTP Content-Type 类型解析
【1月更文挑战第10天】HTTP Content-Type 类型解析
|
安全 PHP
upload-labs Pass-02(MIME详解)
upload-labs Pass-02(MIME详解)
34 0
|
存储 JSON 安全
base64_encode()和base64_decode(),URL的加密解密详解
base64_encode()和base64_decode(),URL的加密解密详解
402 0
|
XML JSON 人工智能
MIME类型
MIME类型
159 0
|
PHP
tp5 获取文件MIME为application/octet-stream问题
后台管理系统利用excel批量导入用户数据时,其他成员的电脑上上传excel mime-type类application/octet-stream; 无法通过后台验证(后台是校验的mime); 但在我的电脑上可以,百度也没有相关解决方法;
248 0
|
Web App开发 存储 XML
http content-type常见文件格式类型
版权声明:本文为博主原创文章,转载请标明出处。 https://blog.csdn.net/chaoyu168/article/details/78710591 Conten...
2127 0
|
Web App开发 前端开发
常用的 文件 MIME类型
.asx,video/x-ms-asf.xml,text/xml.tsv,text/tab-separated-values.ra,audio/x-pn-realaudio.sv4crc,application/x-sv4crc.
1345 0
|
前端开发 JavaScript 数据格式
01_常用的MIME类型
.doc     application/msword .docx   application/vnd.openxmlformats-officedocument.wordprocessingml.document .
1345 0