首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Base64编码的真正目的是什么?

Base64编码的真正目的是什么?
EN

Stack Overflow用户
提问于 2012-04-25 20:36:21
回答 3查看 36K关注 0票数 94

为什么我们要使用Base64编码?我是一个初学者,我真的不明白为什么你要把字节混淆成其他东西(除非它是加密的)。在我读过的一本书中,当不能进行二进制传输时,Base64编码很有用。例如:当我们发布一个表单时,它是经过编码的。但是为什么我们要把字节转换成字母呢?难道我们不能把字节转换成字符串格式,中间加一个空格吗?例如,00000001 00000004?或者简单的0000000100000004没有任何空格,因为字节总是成对的8?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-04-25 21:00:08

Base64是一种将二进制数据编码成几乎每个计算机系统都知道的ASCII字符集的方法,以便在不丢失或修改内容本身的情况下传输数据。例如,邮件系统不能处理二进制数据,因为它们需要ASCII (文本)数据。因此,如果您想要传输图像或其他文件,它将被损坏,因为它处理数据的方式。

注意: base64编码不是一种加密方式,也不是一种压缩数据的方式。实际上,一段base64编码的数据是1.333…比原始数据大几倍。这只是一种确保在传输过程中不会丢失或修改数据的方法。

票数 123
EN

Stack Overflow用户

发布于 2016-05-13 10:03:46

Base64是一种能够在只允许可打印的characters.It的介质上表示和传输二进制数据的机制,它是最流行的“基本编码”形式,使用中的其他已知形式是Base16和Base32。

对Base64的需求源于需要将二进制内容附加到电子邮件中,如图像、视频或任意二进制内容。由于SMTP RFC 5321只允许在消息中使用7位US-ASCII字符,因此需要使用7位ASCII字符来表示这些二进制八位组流...

我希望这能回答这个问题

票数 17
EN

Stack Overflow用户

发布于 2012-04-25 20:51:38

Base64或多或少是一种紧凑的方式来传输(实际上是编码,但目的是传输)任何类型的二进制数据。

请参阅http://en.wikipedia.org/wiki/Base64

一般规则是选择一组64个字符,该字符集既是大多数编码通用的子集的一部分,也是可打印的。

这是一个非常普遍的目的,共同的需求是不会浪费比所需更多的空间。

从历史上看,它是基于这样一个事实,即(几乎)所有编码的公共子集用于将字符存储为字节,并且在简单的数据传输过程中(例如,复制-粘贴-电子邮件发送-电子邮件接收-复制-粘贴序列),2^8个字节中的许多可能存在丢失或转换的风险。

(请将向上投票重定向到Brian的评论,我只是让它更完整,希望更清楚)。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10315757

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档