如何區分htpasswd的加密演算法?

如何區分htpasswd的加密演算法?

我有一個在 Debian Linux 上運行的 apache Web 伺服器,並且我使用 htaccess 來保護某個目錄。我不知道 .htpasswd 檔案是如何建立的。 Apache 文件稱,在 2.2.17 版本之前使用 crypt() 加密來加密密碼,從 2.2.18 版本開始使用 MD5 加密。如何區分我的 .htpasswd 檔案使用哪種加密?

答案1

我不知道 .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 基本驗證 以明文形式傳送密碼,如果您不使用 HTTPS,這絕對不安全。因此,如果您擔心安全性,請考慮切換到HTTP 摘要驗證

相關內容