HTTP Basic Auth中的Base 64编码

时间:2011-04-08 15:11:34

标签: http http-headers base64

我想知道在使用HTTP Basic Auth时编码字符串的目的是什么:在base 64中使用“login:password”。

  • Base 64通常用于通过仅ASCII协议发送二进制数据。但登录名:密码已经是一个字符串
  • 它不会添加任何级别的安全性
  • 输出长于输入,因此不会提高性能

我可能遗漏了一些东西,因为在我看来,这种编码只是增加了一个不必要的复杂层。

谢谢

3 个答案:

答案 0 :(得分:7)

来自http://en.wikipedia.org/wiki/Basic_access_authentication

  

安全不是意图   编码步骤。相反,意图   编码是编码   非HTTP兼容的字符   可以是用户名或密码   进入与HTTP兼容的那些。

答案 1 :(得分:3)

我的第一个想法是它在Base64中进行编码只是为了让它不那么明显,它实际上是一个用户名和密码。

其次,人们可以在他们的密码中加入各种奇怪的字符 - 在Base64中编码将数据放入一种不那么“混乱”的格式,如果你愿意的话。

此外,Base64字符串中输出的长度可以忽略不计;一些额外的数据包不会降低性能任何明显的数量。

From Wikipedia

  

虽然使用Base64算法对用户名和密码进行编码通常会使它们难以被肉眼读取,但它们在编码时很容易被解码。安全性不是编码步骤的目的。相反,编码的目的是将可能在用户名或密码中的非HTTP兼容字符编码为与HTTP兼容的字符。

维基百科似乎证实了我最初的想法。干杯!

答案 2 :(得分:0)

使用base64编码通常会通过SSL连接进行连接,然后SSL连接将加密编码的用户名和密码以获得额外的安全性。