我想知道在使用HTTP Basic Auth时编码字符串的目的是什么:在base 64中使用“login:password”。
我可能遗漏了一些东西,因为在我看来,这种编码只是增加了一个不必要的复杂层。
谢谢
答案 0 :(得分:7)
来自http://en.wikipedia.org/wiki/Basic_access_authentication
安全不是意图 编码步骤。相反,意图 编码是编码 非HTTP兼容的字符 可以是用户名或密码 进入与HTTP兼容的那些。
答案 1 :(得分:3)
我的第一个想法是它在Base64中进行编码只是为了让它不那么明显,它实际上是一个用户名和密码。
其次,人们可以在他们的密码中加入各种奇怪的字符 - 在Base64中编码将数据放入一种不那么“混乱”的格式,如果你愿意的话。
此外,Base64字符串中输出的长度可以忽略不计;一些额外的数据包不会降低性能任何明显的数量。
虽然使用Base64算法对用户名和密码进行编码通常会使它们难以被肉眼读取,但它们在编码时很容易被解码。安全性不是编码步骤的目的。相反,编码的目的是将可能在用户名或密码中的非HTTP兼容字符编码为与HTTP兼容的字符。
维基百科似乎证实了我最初的想法。干杯!
答案 2 :(得分:0)
使用base64编码通常会通过SSL连接进行连接,然后SSL连接将加密编码的用户名和密码以获得额外的安全性。