分類: 開發工具
htpasswd 產生器
在本機建立 Basic Auth 密碼檔項目
在瀏覽器裡產生 Apache 的 htpasswd 行。用 bcrypt 建立 Basic Auth 憑證,複製或下載 .htpasswd 項目,密碼始終不會送到伺服器。
每提高一階,攻擊者要付出的代價就加倍,本頁產生這一行所需的時間也加倍。多數伺服器用 10 到 12 較為合適。
htpasswd 行
結果會顯示在這裡。
bcrypt 最多只讀取密碼的 72 個位元組,其後的內容一律忽略——本頁如此,你的伺服器也一樣。
把檔案存放在網站根目錄之外,再讓 AuthUserFile 指向它。放在可存取目錄內的 .htpasswd 是能被下載的。
密碼在這個分頁裡完成雜湊,絕不會送往任何地方,也不會被保存,產生的那一行同樣如此。
本頁的所有處理都在瀏覽器中完成,不會上傳任何內容。
這個工具能做什麼
.htpasswd 檔案就是一串 `使用者名稱:雜湊` 紀錄,Apache 的 Basic 認證據此比對登入,nginx 在 auth_basic_user_file 裡讀取的也是同一種格式。本頁在你的裝置上建立這些紀錄:bcrypt 的實作就跑在這個分頁裡,所以密碼根本不會外傳。預設選擇 bcrypt,是因為它刻意做得很慢,而且逐筆加鹽——正是這一點讓被竊取的檔案破解起來代價高昂;成本滑桿決定的就是你要讓它慢到什麼程度。SHA-1 只提供給老到無法接受 bcrypt 的伺服器——它不加鹽、速度快,而本頁就在你做選擇的地方把這件事說清楚。
使用方式
- 輸入使用者名稱與密碼,或產生一組隨機密碼。
- 維持 bcrypt 並選擇成本——多數伺服器用 10 到 12 即可。
- 複製這一行,或下載 .htpasswd 檔案,並把它放在網站根目錄之外。
隱私說明
本工具完全在你的瀏覽器中執行。輸入的內容不會被上傳、儲存或分享,關閉分頁就隨之消失。
常見問題
- 我的密碼會被上傳嗎?
- 不會。雜湊在瀏覽器分頁裡計算。密碼、鹽值與最終產生的那一行都不會被傳輸、記錄或保存到任何地方。
- 我該選哪種雜湊?
- 除非伺服器確實不支援,否則選 bcrypt。它逐筆加鹽且刻意做得很慢,竊走檔案的攻擊者每猜一次都得付出真實的時間成本。SHA-1 選項不加鹽、破解很快,只是為了相容才保留。
- bcrypt 的成本有什麼作用?
- 它是金鑰準備輪數以 2 為底的對數,因此每加一階,工作量就加倍——對攻擊者如此,對你伺服器在登入時也一樣。10 到 12 是常見的平衡點;再高,本頁的處理也會明顯變慢。
- 產生的結果能用於 nginx 嗎?
- 可以。nginx 在 auth_basic_user_file 中讀取同樣的檔案格式並支援 bcrypt 項目,所以這裡產生的行在 Apache 和 nginx 上都能用。
- 檔案應該放在哪裡?
- 放在伺服器對外發布的目錄之外,並讓 AuthUserFile 指向它的路徑。如果 .htpasswd 位於可存取的目錄內,任何人都能下載這些雜湊並離線破解。