有关Base64编码的问题

问题描述 投票:0回答:1

我有 3 个关于 Base64 的问题:

1)base64编码的目的是二进制到文本。文本不是会以二进制形式通过网络发送吗?那有什么用呢?

2)过去他们使用7位通信系统,现在是8位。那为什么我们现在还在用它呢?

3)它如何增加尺寸?我只是将 28 位的 3 个字节重新排列为 6 位的 4 个字节,但总共仍然是 28 位?

encoding base64 urlencode base64url
1个回答
1
投票

1) 目的不仅是二进制到文本编码,而且是使用超出标准 7 位 ASCII 代码的特定字符集/代码页对文本进行编码。对于二进制数据,您还会遇到某些值导致问题的问题。当在电子邮件或 HTTP 请求的一部分中传输时,数据中的值 0 可能会被解释为文本的结尾。在接收端,第一个 0 之后的所有内容都可能被“遗忘”,并且数据将被损坏。 Base64 编码通过将所有内容编码在 64 个字符的子集中,这些字符独立于实际代码页并且不包含任何控制字符,从而避免了所有可能的问题。

文本不是要以二进制形式通过网络发送吗?

在底层,一切都是二进制的,无论是文本、图片、电影还是执行的代码,都只是内存和处理器寄存器中的一堆零和一。

2) 参见 1)

3) 3 个字节是 3 * 8 位 = 24 位信息。 一个 Base 64 字符仅代表 6 位,因此您需要 4 个 Base64 字符 4 * 6 位 = 24 位来编码信息。但是这些base64字符是普通的8位字符,所以实际上这4个base64字符占用了4 * 8位= 32位的空间。增加了 33%。

© www.soinside.com 2019 - 2024. All rights reserved.