我没有Base64加密。
如果可以解密Base64字符串,它的目的是什么?
为什么将其用于HTTP Basic身份验证?
这就像告诉某人我的密码已转换为OLLEH。
看到OLLEH的人会知道原来的密码是HELLO。
我没有Base64加密。
如果可以解密Base64字符串,它的目的是什么?
为什么将其用于HTTP Basic身份验证?
这就像告诉某人我的密码已转换为OLLEH。
看到OLLEH的人会知道原来的密码是HELLO。
Answers:
Base64不是加密-它是一种编码。这是仅使用可打印(文本)字符表示二进制数据的一种方式。
请参阅Wikipedia页面上的本段,以进行HTTP基本身份验证:
尽管使用Base64算法对用户名和密码进行编码通常会使它们无法用肉眼读取,但它们与编码一样容易被解码。安全性不是编码步骤的目的。而是,编码的目的是将用户名或密码中的非HTTP兼容字符编码为与HTTP兼容的字符。
通常称为base64编码,而不是加密!base64编码的好处是它允许您仅使用可用字符的有限公共子集来表示(二进制)数据,这比仅编写1和0的字符串(例如ASCII)要有效得多。
x2
比原始流更多的字节,而1s,0s-产生x8
更多的字节。(并且Base64 x1.3
比原始字节数组生成更多数据)。因此,有时可以将二进制流编码为十六进制字符串,将字节数量加倍-例如仅将密码哈希存储在数据库中。
恩隐窝离子需要以解密密钥(字符串或算法); 因此是“ crypt”(根:cryptography)
烯COD荷兰国际集团修改/偏移/改变的字符码到另一个。在这种情况下,现在可以使用HTTP轻松表示和传输普通数据字节。
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。
默认情况下,超文本传输协议(HTTP)消息中的消息头字段参数不能携带ISO-8859-1字符集以外的字符。
如果用户名和密码包含不兼容的字符集,则HTTP将无法携带这些文本。为了防止这种情况,我们使用base64对用户名和密码进行编码,以确保我们通过HTTP发送与HTTP兼容的字符。有关更多信息,请参见此Basic_access_authentication。