首页 文章

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

提问于
浏览
63

为什么我们有Base64编码?我是初学者,我真的不喜欢我们只是将字节转换为字符串格式,中间有空格?例如, 00000001 00000004 ?或者只是 0000000100000004 没有任何空格,因为字节总是以8对的形式出现?

3 回答

  • 79

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

    注意:base64编码不是加密的方式,也不是压缩数据的方法 . 事实上,base64编码的数据片段比原始数据片段大1.333倍 . 这只是确保在传输过程中没有数据丢失或修改的方法 .

  • 3

    Base64是一种机制,可以通过仅允许打印字符的介质表示和传输二进制数据 . 它是“基本编码”的最流行形式,其他已知的使用Base16和Base32 .

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

    希望这能回答这个问题

  • 8

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

    http://en.wikipedia.org/wiki/Base64

    “一般规则是选择一组64个字符,这些字符既是大多数编码共有的子集的一部分,也是可打印的 . ”

    这是一个非常普遍的目的,共同的需求不是浪费更多的空间而不是需要 .

    从历史上看,它基于以下事实:(几乎)所有编码用于将字符存储到字节中,并且很多2 ^ 8个可能的字节在简单数据传输过程中存在丢失或转换的风险(例如复制 - paste-emailsend-emailreceive-copy-paste sequence) .

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

相关问题