Apache-Httpd

如何區分 htpasswd 的加密算法?

  • August 17, 2016

我有一個在 Debian Linux 上執行的 apache Web 伺服器,我使用 htaccess 保護了某個目錄。我不知道 .htpasswd 文件是如何創建的。Apache 文件說 crypt() 加密用於加密密碼,直到版本 2.2.17 和 MD5 加密從 2.2.18 開始使用。如何區分我的 .htpasswd 文件使用哪種加密方式?

我不知道 .htpasswd 文件是如何創建的。

您可能正在尋找htpasswd命令。閱讀手冊頁以獲取更多詳細資訊:

man htpasswd

如何區分我的 .htpasswd 文件使用哪種加密方式?

為什麼你需要知道這一點?如果您只想編輯文件,我認為知道這一點並不重要。

我問是因為我覺得他們倆都很脆弱。

我機器上的htpasswd命令可以使用四種不同的密碼格式:

# MD5 (default)
martin@martin ~ % htpasswd -m -b -n user pass
user:$apr1$uFKIg3No$ItOJ5p6EEbALwPDYcPDd0.
# crypt
martin@martin ~ % htpasswd -d -b -n user pass
user:qMYdeiUkbhR/o
# SHA
martin@martin ~ % htpasswd -s -b -n user pass
user:{SHA}nU4eI71bcnBGqeO0t9tXvY1u5oQ=
# Plain
martin@martin ~ % htpasswd -p -b -n user pass
user:pass

這應該可以幫助您弄清楚您正在使用哪種格式。

我想知道您關心的是什麼……只有在攻擊者能夠訪問該.htpasswd文件時才關心雜湊是否易受攻擊,這在理智的配置中應該是不太可能的。該.htpasswd文件應儲存在服務目錄之外,例如 中的某個/etc位置,Web 伺服器可以訪問它,但不會提供它。

您更應該關心的是HTTP Basic Auth 以明文傳輸密碼的事實,如果您不使用 HTTPS,這絕對是不安全的。因此,如果您擔心安全性,請考慮切換到HTTP Digest Auth

引用自:https://unix.stackexchange.com/questions/92550