base 64编码的目的是什么,为什么在HTTP Basic Authentication中使用它?


129

我没有Base64加密。

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

为什么将其用于HTTP Basic身份验证?

这就像告诉某人我的密码已转换为OLLEH。

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




10
base64不是加密,而是编码
n611x007

Answers:


248

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

请参阅Wikipedia页面上的本段,以进行HTTP基本身份验证

尽管使用Base64算法对用户名和密码进行编码通常会使它们无法用肉眼读取,但它们与编码一样容易被解码。安全性不是编码步骤的目的。而是,编码的目的是将用户名或密码中的非HTTP兼容字符编码为与HTTP兼容的字符。


4
同样,似乎从字符串中获取“二进制数据”的相关字符编码应该是iso-8859-1。(来源
Myobis 2014年

60

通常称为base64编码,而不是加密!base64编码的好处是它允许您仅使用可用字符的有限公共子集来表示(二进制)数据,这比仅编写1和0的字符串(例如ASCII)要有效得多。


6
+1,但是与以1s,0s流存储数据的比较太夸张了。最好将它与以十六进制格式存储数据进行比较。因为十六进制只会产生x2比原始流更多的字节,而1s,0s-产生x8更多的字节。(并且Base64 x1.3比原始字节数组生成更多数据)。因此,有时可以将二进制流编码为十六进制字符串,将字节数量加倍-例如仅将密码哈希存储在数据库中。
Agnius Vasiliauskas,

30

隐窝离子需要以解密密钥(字符串或算法); 因此是“ crypt”(根:cryptography

COD荷兰国际集团修改/偏移/改变的字符码到另一个。在这种情况下,现在可以使用HTTP轻松表示和传输普通数据字节。


5
加密仅表示“隐藏”-基于密钥的加密是一项非常新的发明。加密是一种已被用作加密的编码形式(尽管12岁以上的人已经有数百年的历史了)。

2
本地加密用于指代最近的加密模式,特别是基于密钥(公共/专用密钥)的计算机加密。虽然是正确的,但没有必要指出日期单词的字面定义;否则,您可能会争论今天使用的许多英语单词的历史定义。话语(有时是口语性的)赋予了单词上下文和定义。
vol7ron

1
我不认为你听起来很粗鲁。我同意你关于现代背景的观点。词语和定义在不断发展。我认为“编码”和“加密”在现代计算中肯定有两个非常不同的定义,您的回答将为总结这些差异做出很大的努力。
Dan Bechard 2015年

Base64编码是一种混淆形式,仅表示不清楚。对于许多应用程序来说,这是足够的加密,例如,其目标只是简单地处理通过电线发送的任何明文。
Dominic Cerisano

6
@DominicCerisano:不,base64编码不算作加密,我希望您不要用它来保护任何东西。
Ry-

19

在日常语言中,“代码”是秘密。在科学和工程学中,代码只是关于如何编写内容的协议,一组规则。

该代码可能是秘密的。在这种情况下,它称为加密。但是总的来说,代码不是秘密的。采取遗传密码。它只是说,我们的DNA由四个不同的基地建成- ,  ,A 和和所采取的三大基地一起形成一种氨基酸。还有一张表格,其中三个字母组成一个氨基酸。CGT

这段代码没有什么秘密。

同样,Base64也不是密码。而是,该代码允许每个字符以六位存储数据(因此有64个不同的实体,即系统的“底数”是64,就像我们的十进制系统的底数是10,因为存在10个不同的实体称为“数字”)。



17

Base-64编码是MIME规范的一部分。它提供了一种传输安全的编码,用于通过主机使用与原始客户端使用的编码方案不同的编码方案进行中继时不会被占用的数据。

Intertube上有很多不同的主机,您不能真正假设对7位ASCII以外的任何支持,而不会冒数据丢失/混乱的风险。

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


0

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

如果用户名和密码包含不兼容的字符集,则HTTP将无法携带这些文本。为了防止这种情况,我们使用base64对用户名和密码进行编码,以确保我们通过HTTP发送与HTTP兼容的字符。有关更多信息,请参见此Basic_access_authentication。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.