2009-11-05 148 views
31

使用Base64编码有什么优势?使用Base64编码的优点是什么?

我想更好地理解它。我真的需要它吗?我不能简单地使用纯字符串吗?

听说编码可以达到比原来的(至少对于图像)放大30%。

+1

Base64编码为每3个字节的二进制数据发出4个字节的可打印数据。如果你也定期换行(例如,邮件程序将行长度限制为64或72个字符),那么你会为换行获得另外一个字节48或54个输入字节(除非你在获得2字节时使用CRLF行结束符每行)。 – 2009-11-05 20:24:51

+5

对于缺点,请看这里http://stackoverflow.com/questions/14418785 – Val 2013-01-19 21:13:42

+0

利用这个链接清楚理解。 HTTP://计算器。com/a/201510/3979414 – Kumar 2016-02-17 13:02:48

回答

39

最初一些协议只允许7位,有时只允许6位数据。

Base64的允许一个编码对这些类型的链路的8位数据转换成用于传输6个比特。

电子邮件就是一个例子。

+3

大部分是7位第8位用于许多串行传输协议的奇偶校验。 – 2009-11-05 19:31:23

+1

非常详细,我从来没有想过。我感觉更新了。 – Ismael 2009-11-05 19:49:44

+0

您不能在电子邮件中使用二进制字符串,因为它可能与控制字符相冲突。 – 2013-07-20 17:55:47

37

base64编码的主要用途的情况是当要与一组受限的字符存储或传输数据;即当你无法在每个字节中传递任意值时。

+6

另外,如果你想通过字符串协议(如JSON)发送二进制数据,其中bianry可能会因为不需要的字符(如引号0x00等)而破坏您的字符串... – 2009-11-05 19:31:43

+1

Rafal:基本上是一个实例“受限字符集”。 – 2009-11-05 19:32:44

+1

我希望我也能批准你的答案。很好的答案。 – Ismael 2009-11-05 19:51:18

0

是否使用它取决于你正在使用它。

我用它主要是用于编码的二进制数据通过它也确实得到了文本文件的创建机制。例如 - 在传递数字证书请求或检索完成的数字证书时 - 在这些情况下,通过Web窗体上的文本字段将二进制数据作为Base 64传递通常非常方便。

我可能,如果你有一些已经是文本,你只是想传递的地方它不会使用它。

5

一个应用程序是在只允许字符的上下文中传输二进制数据。例如。在XML文档/传输中。 XML-RPC就是一个例子。

0

我用它绕过倾向于通过电子邮件程序得到咀嚼,因为它们看起来像文本文件(例如重播HL7成绩单)文件。

12
<img alt="Embedded Image" 
    src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIA..." /> 

此代码将显示编码图像,但没有人可以从其他网站链接到此图像并使用您的流量。

Base64 decode

3

使用Base64编码的优点,就像有人说,都可以从二进制传输数据,代入式(最常见)ASCII字符。由于接收端可以处理ASCII的可能性,它使它成为通过文本流传输二进制数据的好方法。如果你的情况能够处理本地二进制数据,就速度等而言,这很可能会产生更好的结果,但是如果不是这样的话,base64最有可能成为现实。 JSON是一个很好的例子,你可以从这样的事情中受益,或者当它需要存储在某个文本字段中时。给我们更多的细节,我们可以提供更好的定制答案。

相关问题