.htpasswd 檔案生成器
在瀏覽器中安全生成用於 Apache 和 Nginx Basic 認證的 .htpasswd 檔案。支援 bcrypt、APR1-MD5 和 SHA-1。密碼不會發送到伺服器。
使用提示
- 推薦使用 bcrypt:目前最安全的演算法,適用於 Apache 2.4+ 和 Nginx。成本值越高,雜湊計算越慢,抵禦暴力破解的能力越強(通常推薦值為 10)。
- APR1-MD5(
$apr1$)適用於需要相容 Apache 2.2 或更舊版本的場景,幾乎所有 Apache 和 Nginx 版本都支援。 - SHA-1(
{SHA})抗碰撞性較弱,不推薦使用。僅在必須向後相容的舊環境中使用。 - 建議將 .htpasswd 檔案放置在 Web 根目錄(
DocumentRoot)之外,防止被直接訪問。 - 務必配合 HTTPS 使用。Basic 認證的憑據僅經過 Base64 編碼,未加密,在 HTTP 連線下相當於明文傳輸。
常見問題
在
.htaccess 或 httpd.conf 中新增以下配置,並將 AuthUserFile 指向生成的 .htpasswd 檔案路徑:AuthType Basic AuthName "Restricted Area" AuthUserFile /etc/apache2/.htpasswd Require valid-user
在
nginx.conf 或相應的 server 塊中新增:location /admin {
auth_basic "Restricted Area";
auth_basic_user_file /etc/nginx/.htpasswd;
}Nginx 同時支援 bcrypt 和 APR1-MD5。建議優先選擇 bcrypt,適用於 Apache 2.4+ 和 Nginx。APR1-MD5 僅在需要相容舊版 Apache 時使用。除非有特殊需求,否則不要選擇 SHA-1。
將生成的行(
使用者名稱:雜湊值 格式)追加到檔案末尾即可。每行對應一個使用者,空行和以 # 開頭的註釋行會被忽略。安全。所有雜湊計算均在瀏覽器中完成,密碼不會傳輸到伺服器。請確保在 HTTPS 頁面下使用本工具,並妥善保管生成的檔案。
閒話 ― Basic 認證為何歷久不衰
HTTP Basic 認證於 1999 年由 RFC 2617 定義(後更新為 RFC 7617),原理其實極為簡單:將使用者名稱與密碼以 : 拼接,經 Base64 編碼後放入 Authorization 請求頭即可完成身份宣告。誕生至今已有二十多年,它依然是 Web 世界裡最古老、也最廣泛支援的認證方式之一。
也正是這種簡潔性,讓它歷經二十多年依然沿用至今。它常被用於測試環境、內部工具,或與 IP 白名單結合構成雙重防護——只需兩三行配置,無需額外中介軟體或資料庫,可以說是最輕量的訪問控制方案之一。這也是為什麼即便認證技術已經發展出許多更精細的方案,Basic 認證仍然在快速搭建臨時防護時被反覆選用。
當然,它也並非沒有侷限:沒有登出機制(關閉瀏覽器前會話會一直持續),不支援密碼過期管理和多因素認證。因此對於安全要求較高的正式服務,通常還是建議考慮 OAuth 2.0 或 OIDC 等更完善的方案,把 Basic 認證留給那些"快、簡單、臨時"的場景。