2013-08-27 54 views
0

出於好奇,我想知道爲什麼Web應用程序通常會使用用戶ID和密碼。爲什麼只使用webApps userID +密碼而不是密碼?

我沒有看到原因,爲什麼足夠長的密碼不適合。例如,由服務器應用程序生成的密碼。

應用程序最終是否還有使用用戶ID的原因?

只要密碼是唯一且長的,它完全允許識別用戶。

回答

1

首先,如果沒有用戶標識,密碼重置會非常複雜。


但真正的原因是,這是不可能使用鹽析,以保護密碼,如果你沒有一個用戶ID,這意味着你將有效算不上是保護你的密碼。

這是爲什麼。 Salting要求您知道用於生成密碼哈希的salt。過程如下:

  1. 使用用戶ID在你的數據庫
  2. 鹽&哈希值是提供
  3. 檢查這是否你在DB有密碼哈希值相匹配的密碼,找到鹽。

如果您沒有用戶標識,那麼您需要檢查您的數據庫中的每個用戶的密碼。

這相當複雜,檢查一個密碼是針對整個數據庫的,這是您有意通過設計使其過於昂貴(按時間或金錢)。

+0

更不用說用戶不想記住32個字符的十六進制字符串! – CDspace

1

Web應用程序不僅僅使用密碼的一個最重要的原因是兩個用戶可能擁有相同的密碼。

當密碼是識別用戶的唯一因素時,用戶A可以用他的密碼登錄並且可以訪問用戶B的帳戶而不是他自己的帳戶,因爲他們使用相同的密碼並且系統需要選擇一個用戶登錄。

相關問題