2011-04-08 96 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連接,然後將加密爲了額外的安全編碼的用戶名和密碼連接隨訪。