Htpasswd Generator

Generate file .htpasswd untuk proteksi folder website dengan password. Menggunakan algoritma standard APR1-MD5 (Apache). Lindungi wp-admin, staging site, atau folder sensitif dengan Basic Auth.

Algoritma: APR1-MD5 (Apache default). Compatible dengan semua hosting cPanel & Apache server.

Username & Password

Generated .htpasswd

# Masukkan username dan password untuk generate

Apa itu .htpasswd?

.htpasswd adalah file yang digunakan oleh web server Apache untuk menyimpan username dan password yang ter-hash. File ini digunakan untuk melindungi folder atau halaman website dengan autentikasi Basic Auth (HTTP Authentication).

Ketika user mengakses folder yang dilindungi .htpasswd, browser akan memunculkan popup login sebelum mengizinkan akses ke konten.

Kapan Menggunakan .htpasswd?

  • Proteksi folder /admin atau dashboard tanpa perlu coding authentication kompleks
  • Website staging/development agar tidak diakses publik sebelum launching
  • Directory listing yang berisi file sensitif (dokumen internal, backup)
  • API endpoint sederhana yang butuh layer proteksi tambahan
  • WP-Admin WordPress untuk menambah double security di atas login WordPress

Algoritma Hash: APR1-MD5

Tool ini menggunakan APR1-MD5, yaitu algoritma hash standar Apache yang paling banyak digunakan untuk file .htpasswd.

RecommendedAPR1-MD5

Format default Apache. Didukung oleh semua hosting cPanel dan Apache server modern.

username:$apr1$salt$hash
  • ✅ Compatible dengan Apache 2.x+
  • ✅ Support di cPanel, Plesk, DirectAdmin
  • ✅ Aman dengan salt random 8 karakter
  • ✅ 1000 rounds MD5 hashing

⚠️ Plain Text (JANGAN!)

Password tidak di-hash, langsung ketahuan jika file bocor. Sangat tidak aman!

username:plainpassword

🚫 Jangan pernah gunakan plain text password di production!

💡 Catatan tentang SHA-1 dan BCrypt

Tool ini fokus ke APR1-MD5 karena paling universal. SHA-1 sudah deprecated dan tidak aman. BCrypt lebih aman tapi butuh Apache 2.4+ dengan modul khusus yang tidak semua hosting support.

Cara Setup .htpasswd di Server

1. Generate file .htpasswd

Gunakan tool ini untuk generate content file. Copy hasil output.

2. Upload file ke server

Via FTP/File Manager, upload file dengan nama .htpasswd ke folder yang ingin dilindungi (atau 1 level di atasnya untuk keamanan).

Contoh struktur folder:
/public_html/
  .htpasswd          ← Taruh di sini (di luar folder yang dilindungi)
  .htaccess          ← File konfigurasi
  /admin/            ← Folder yang dilindungi
    index.php

3. Buat/Edit file .htaccess

Di folder yang ingin dilindungi, buat file .htaccess dengan isi:

AuthType Basic
AuthName "Restricted Area"
AuthUserFile /home/username/public_html/.htpasswd
Require valid-user

⚠️ Ganti /home/username/public_html/.htpasswd dengan absolute path ke file .htpasswd Anda.

4. Test proteksi

Buka folder yang dilindungi di browser. Popup login harus muncul. Coba login dengan username/password yang Anda buat.

Setup di cPanel (Lebih Mudah)

Jika hosting Anda menggunakan cPanel, ada cara lebih mudah:

  1. Login ke cPanel
  2. Cari menu "Directory Privacy" (atau "Password Protect Directories")
  3. Pilih folder yang ingin dilindungi
  4. Centang "Password protect this directory"
  5. Tambahkan user baru dengan username dan password
  6. Save - cPanel akan otomatis generate .htpasswd dan .htaccess

FAQ

Bagaimana cara tahu absolute path ke .htpasswd?

Buat file PHP sederhana dengan isi <?php echo __DIR__; ?> lalu buka di browser. Path akan muncul.

Apakah .htpasswd aman dari hacker?

Ya, jika menggunakan APR1-MD5 atau BCrypt. Password di-hash dengan salt, jadi tidak bisa dibaca langsung. Tapi pastikan file .htpasswd tidak bisa diakses langsung via browser (taruh di luar public_html atau block akses via .htaccess).

Bisa protect hanya 1 file, bukan folder?

Ya! Gunakan directive <Files "namafile.php"> di .htaccess:

<Files "config.php">
  AuthType Basic
  AuthName "Protected File"
  AuthUserFile /path/to/.htpasswd
  Require valid-user
</Files>

Kenapa muncul error "Internal Server Error"?

Kemungkinan: (1) Path .htpasswd salah (harus absolute), (2) File .htpasswd tidak ada permission read (chmod 644), (3) Syntax .htaccess salah.

Tips Keamanan

  • Gunakan password kuat minimal 12 karakter kombinasi huruf, angka, simbol
  • Taruh .htpasswd di luar public_html jika memungkinkan, atau 1 level di atas folder yang dilindungi
  • Kombinasikan dengan HTTPS agar password tidak dikirim plain text via network
  • Ganti password berkala terutama jika banyak orang yang tahu
  • Gunakan APR1 atau BCrypt, hindari SHA atau plain text