基础64编码的目的是什么,以及为什么它在HTTP基本authentication中使用?

我没有得到Base64encryption。

如果可以解密一个Base64string,那么它的目的是什么?

为什么它被用于HTTP基本身份validation?

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

看OLLEH的人会知道原来的密码是HELLO。

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

请参阅HTTP基本authentication的维基百科页面的这一段:

使用Base64algorithm对用户名和密码进行编码通常会使得它们无法被肉眼识别,但是它们在编码时就像解码一样容易。 安全性不是编码步骤的目的。 相反,编码的意图是将可能在用户名或密码中的非HTTP兼容字符编码为与HTTP兼容的字符。

通常被称为base64编码, 而不是encryption! 关于base64编码的好处在于,它允许您仅使用有限的可用字符的通用子集来表示(二进制)数据,这比仅以ASCII和string编写ASCIIstring更为有效。

密钥需要密钥(string或algorithm)才能解密; 因此“ 密码 ”(根: 密码学 )

编码修改/移位/将字符代码更改为另一个。 在这种情况下,现在可以使用HTTP轻松地表示和传输通常的数据字节。

你可能意思是“Base 64 Encoding”。 encryption与编码不同。

维基百科:encryption

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

该代码可能是秘密的。 在这种情况下,它被称为encryption。 但总的来说,代码并不是秘密。 拿遗传密码。 它只是说我们的DNA是由四个不同的碱基构成的, ACGT ,三个碱基组成一个氨基酸。 还有一个表格,其中三个字母形成哪个氨基酸。

这个代码没有什么秘密。

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

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

在交互中有很多不同的主机,你不能承担除7位ASCII之外的其他任何支持,而不会冒数据丢失/混淆的风险。

例如,IBM大型机使用一种名为EBCDIC的编码(有许多不同的风格)。 它的代码点与基于ASCII的“puters – 在ASCII中使用的代码点完全不同,字母AZ是0x41 – 0x5A; 在EBCDIC中,字母A – Z甚至不是连续的范围:字母AI居住在0xC1 – 0xC9,字母JR居住在0xD1 – 0xD9,字母SZ居住在0xE2 – 0xE9。