基64编码的目的是什么? 为什么在 HTTP 基本身份验证中使用基64编码?

我不知道 Base64密码。

如果一个人可以解密 Base64字符串,它的目的是什么?

为什么它被用于 HTTP 基本认证?

这就像告诉别人我的密码被反转成了 OLLEH。

人们看到 OLLEH 将知道原来的密码是 HELLO。

92134 次浏览

Base64不是加密,而是编码。这是一种仅使用可打印(文本)字符表示二进制数据的方法。

参见 HTTP 基本身份验证的维基百科页面中的这一段:

虽然用 Base64算法对用户名和密码进行编码通常使其肉眼无法读取,但是它们很容易被解码,就像它们被编码一样。安全性不是编码步骤的目的。相反,编码的目的是将可能位于用户名或密码中的非 HTTP 兼容字符编码为 HTTP 兼容字符。

它通常被称为 base64编码,没有加密!Base64编码的好处在于,它允许您仅使用有限的、通用的可用字符子集来表示(二进制)数据,这比仅仅编写一个由1和0组成的字符串(例如 ASCII)要有效得多。

你的意思可能是“基本64编码”。加密和编码是不一样的。

维基百科: 加密

En地窖ion 需要一个密钥(字符串或算法)来解密; 因此需要“ crypt”(root: 密码学)

En鳕鱼ing 修改/移位/将一个字符代码改为另一个。在这种情况下,通常的数据字节现在可以很容易地用 HTTP 表示和传输。

在日常语言中,“代码”是某种秘密。在科学和工程学中,代码只是一个协议,一套规则,关于如何写东西。

代码 是秘密的。在这种情况下,这叫做加密。但一般来说,密码并不是秘密。拿遗传密码来说。它简单地说明我们的 DNA 是由四种不同的碱基构成的—— ACGT,三种碱基合在一起形成一种氨基酸。还有一张表,上面有三个字母组成了哪种氨基酸。

这个密码没什么秘密。

同样,Base64也不是秘密代码。相反,它是一种允许以每个字符6位存储数据的代码(因此有64个不同的实体,即系统的“基数”是64,正如我们的十进制系统的基数是10,因为有10个不同的实体称为“数字”)。

Base-64编码是 MIME 规范的一部分。它为数据提供了一种 运输安全编码,如果/当数据通过使用与原始客户机不同的编码方案的主机进行中继时,这些数据将不会被咀嚼。

互联网上有很多不同的主机,除了7位 ASCII 之外,你不能真正假设支持其他任何东西,否则会有数据丢失/混乱的风险。

例如,IBM 大型机使用一种称为 EBCDIC 的编码(有很多不同的风格)。它的代码点与基于 ASCII 的计算机所使用的代码点完全不同——在 ASCII 中,字母 A-Z 是0x41-0x5A; 在 EBCDIC 中,字母 A-Z 甚至不是一个连续的范围: 字母 A-I 是0xC1-0xC9,字母 J-R 是0xD1-0xD9,字母 S-Z 是0xE2-0xE9。

默认情况下,超文本传输协议(HTTP)消息中的消息头字段参数不能携带 ISO-8859-1字符集以外的字符。

如果用户名和密码包含不兼容的字符集,则 HTTP 将无法携带这些文本。为了防止这种情况,我们使用 base64编码用户名和密码,以确保通过 HTTP 发送与 HTTP 兼容的字符。更多信息请看这个 Basic _ access _ Authentication