開發者工具 / 24
Apache / Nginx .htpasswd 產生器
在用戶端記憶體中產生 Apache 和 Nginx 的 .htpasswd 驗證行與密碼雜湊。
Apache / Nginx .htpasswd 產生器: TOEA 會寫入 Apache 和 nginx 用於 HTTP 基本驗證的驗證行。預設格式是 Apache 的 $apr1$:密碼會加上八個隨機字元的 salt,並經過一千輪運算,這就是 htpasswd -m 產生的格式,也是兩種伺服器都能讀取的格式。 全程在瀏覽器中於本機執行,檔案不會上傳至伺服器。
- 分類
- 開發者工具
- 使用次數
- 在瀏覽器中
- 費用
- 免費・免註冊
- 可用狀態
- 可立即使用
將這一行接入伺服器
請將這一行儲存在網頁根目錄之外的檔案中,每行一個 user:hash。使用 nginx 時,請在 location 或 server 區塊中加入 auth_basic "Restricted"; 和 auth_basic_user_file /etc/nginx/.htpasswd;。使用 Apache 時,請使用 AuthType Basic、AuthName、帶有檔案完整路徑的 AuthUserFile,以及 Require valid-user。之後重新載入伺服器;其中的語法錯誤會導致每個要求都失敗,而不只是登入失敗。
美元符號與純 HTTP
雜湊值中充滿 $ 字元,而 Docker Compose 檔案、.env 檔案和某些 proxy label 會把 $ 視為變數的開頭。在 Compose 中,請將每個 $ 寫成 $$;否則雜湊值會在不提示的情況下被截短,任何密碼都無法比對成功。
基本驗證會在每個要求中傳送使用者名稱和密碼,內容經過編碼但沒有加密。請將它放在 HTTPS 後方,並將它視為 staging 網站和管理路徑的門禁,而不是提供給客戶使用的登入系統。
使用方式
- 輸入使用者名稱和密碼。
- 除非有特殊理由,否則請保留 Apache MD5 演算法。
- 將產生的驗證行複製到您的 .htpasswd 檔案中。
隱私與限制
密碼會在您的瀏覽器中進行雜湊,絕不會傳送到任何地方。不會記錄任何資料,而 salt 來自瀏覽器自身的密碼學亂數來源,因此兩個人為相同密碼產生驗證行時,不會得到相同的雜湊值。
相關工具
常見問題
我應該選哪個演算法?
Apache MD5($apr1$),也就是這裡的預設選項。它會加 salt 並進行迭代,Apache 和 nginx 都能接受。{SHA} 選項是不加 salt 的 SHA-1 摘要,僅保留給需要它的舊版設定使用;Apache 自己的 htpasswd 工具將這個選項標示為不安全,因為相同的密碼會產生相同的雜湊值,查表就能破解。
這和 bcrypt 一樣強嗎?
不一樣。bcrypt 是更強的選擇,Apache 也支援它,但這裡無法產生 bcrypt——它需要 Blowfish 實作,而要隨工具一併提供並建立信任,會需要大量程式碼。如果您想使用 bcrypt,請在本機執行 htpasswd -B -n username,然後貼上結果。
我可以先檢查驗證行,再依賴它嗎?
可以,而且值得這麼做。請將它儲存到檔案中,然後執行 htpasswd -vb yourfile username password——Apache 會告訴您驗證是否成功。這些驗證行已使用 htpasswd 和 openssl passwd -apr1 進行驗證。
免費工具・使用在瀏覽器中次・免註冊