2011-04-08 123 views
3

我想知道什么是使用HTTP基本认证编码字符串:“登录名:密码”在基础64中的目的。Base 64编码在HTTP基本认证

  • 基准64通常用于通过仅ASCII协议发送二进制数据。但是,账号:密码已经是一个字符串
  • 它不添加任何安全级别
  • 输出大于输入长,所以它不会提高性能

我可能失去了一些东西,因为它目前在我看来,这种编码只是增加了一层不必要的复杂性。

谢谢

+0

相关:为什么在Base64编码基本身份验证(http://stackoverflow.com/questions/13661384/why-base64-in-basic-authentication)和[什么是基地64编码的目的,以及为什么它在使用HTTP基本身份验证?](http://stackoverflow.com/questions/4070693/what-is-the-purpose-of-base-64-encoding-and-why-it-used-in-http-basic-authentica) – 2014-11-12 07:45:16

回答

7

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

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

+0

哇,我读了维基百科的文章,但我不知何故错过了这句话。 – almathie 2011-04-08 15:29:13

+2

我不认为是这个意图,否则定义这个的人会意识到他们需要指定字符编码来完成这个工作。 – 2011-04-08 16:45:55

+0

@JulianReschke你可以对原意进行刺探吗?这可能只是为了某种形式的混淆? – 2014-11-11 09:12:43

2

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

其次,人们可以把各种奇怪的字符在他们的密码 - 在Base64编码,它把数据的格式,那么“乱”,如果你愿意。

另外,在字符串的Base64输出的长度是相当可忽略不计几个额外的数据包不会降低性能的显着数量。

From Wikipedia

虽然编码具有Base64的算法的用户名和密码通常使得它们不可读通过肉眼,它们是作为容易因为它们被编码解码。安全性不是编码步骤的目的。相反,编码的目的是将可能在用户名或密码中的非HTTP兼容字符编码为与HTTP兼容的字符。

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

0

与BASE64的编码通常是由通过SSL连接,然后将加密为了额外的安全编码的用户名和密码连接随访。