Cara Menentukan Kekuatan Kata Sandi: Panduan Teknis tentang Entropi, Ketahanan terhadap Pembobolan, dan Manajemen Kredensial yang Aman
Kekuatan kata sandi adalah ukuran kuantitatif tentang seberapa tahan kata sandi tersebut terhadap penemuan tidak sah melalui serangan brute-force, serangan kamus, credential stuffing, dan tebakan statistik. Kekuatan ini ditentukan oleh tiga variabel yang saling berkaitan: panjang, keragaman ruang karakter, dan ketidakpastian (entropi). Kata sandi yang mendapat skor di atas 60 bit entropi Shannon dan mengandung setidaknya 16 karakter yang diambil dari kumpulan karakter campuran dianggap kuat secara kriptografis berdasarkan standar NIST SP 800-63B saat ini.
Memahami kekuatan kata sandi bukan sekadar mengikuti daftar periksa — ini memerlukan pemahaman tentang hubungan matematis antara kumpulan karakter, panjang kata sandi, dan biaya komputasi yang dibebankan kepada penyerang. Panduan ini membahas hubungan tersebut dalam istilah teknis yang tepat, menjelaskan bagaimana insinyur keamanan profesional mengevaluasi kredensial, dan memberikan praktik yang dapat ditindaklanjuti untuk pengguna individu maupun administrator sistem yang mengelola kebijakan autentikasi pada server dan infrastruktur hosting.
Apa yang Sebenarnya Diukur oleh Kekuatan Kata Sandi
Kekuatan kata sandi adalah proksi untuk biaya serangan — khususnya, jumlah tebakan yang harus dilakukan oleh penyerang sebelum menemukan kredensial yang benar. Biaya ini dinyatakan dalam bit entropi menggunakan rumus:
H = L × log₂(N)Di mana H adalah entropi dalam bit, L adalah panjang kata sandi dalam karakter, dan N adalah ukuran kumpulan karakter (jumlah simbol berbeda yang harus dipertimbangkan oleh penyerang).
Nilai entropi yang lebih tinggi berarti pekerjaan menebak yang jauh lebih banyak secara eksponensial. Perbedaan antara 40 bit dan 80 bit bukan dua kali lebih sulit — melainkan 2^40 kali lebih sulit, yang berarti sekitar satu triliun tebakan tambahan.
Kumpulan Karakter dan Dampaknya terhadap Entropi
| Kumpulan Karakter | Ukuran Kumpulan (N) | Entropi per Karakter |
|---|---|---|
| — | — | — |
| Huruf kecil saja (a–z) | 26 | 4,70 bit |
| Huruf kecil + huruf besar | 52 | 5,70 bit |
| Alfanumerik (a–z, A–Z, 0–9) | 62 | 5,95 bit |
| ASCII cetak lengkap (dengan simbol) | 95 | 6,57 bit |
| Frasa sandi Diceware (daftar besar EFF) | 7.776 kata | 12,92 bit per kata |
Tabel ini menggambarkan mengapa menambahkan satu simbol saja pada kata sandi yang murni alfabetis menghasilkan peningkatan entropi yang terukur, dan mengapa frasa sandi Diceware empat kata dapat mengungguli kata sandi yang kompleks namun pendek.
Faktor-Faktor Utama yang Menentukan Kekuatan Kata Sandi
Panjang Kata Sandi
Panjang adalah variabel yang paling berpengaruh dalam rumus entropi. Menggandakan panjang kata sandi akan mengkuadratkan ruang pencarian untuk kumpulan karakter yang tetap. Perhatikan perbedaannya:
- Kata sandi 8 karakter menggunakan ASCII cetak lengkap:
H = 8 × 6.57 = ~52.6 bits - Kata sandi 16 karakter menggunakan kumpulan karakter yang sama:
H = 16 × 6.57 = ~105 bits
Pada 52,6 bit, rig cracking yang dipercepat GPU modern yang menjalankan Hashcat pada hash MD5 dapat menghabiskan ruang tersebut dalam hitungan jam. Pada 105 bit, perangkat keras yang sama akan membutuhkan skala waktu geologis. NIST SP 800-63B merekomendasikan minimal 8 karakter untuk kata sandi yang dipilih pengguna, tetapi administrator yang sadar keamanan harus memberlakukan minimal 12–16 karakter, tanpa batas atas buatan.
Variasi dan Kompleksitas Karakter
Mencampur kelas karakter memperluas N dan karenanya meningkatkan entropi per karakter. Kata sandi yang kuat harus mengambil dari:
- Huruf besar (A–Z)
- Huruf kecil (a–z)
- Angka (0–9)
- Karakter khusus (
!,@,#,$,%,^,&,*, dll.)
Namun, ada nuansa penting yang sering diabaikan banyak panduan: aturan kompleksitas yang diwajibkan justru dapat melemahkan kata sandi secara paradoks. Ketika pengguna dipaksa menyertakan simbol, mereka secara dapat diprediksi menambahkan ! atau 1 di akhir kata. Pola ini sudah dikenal oleh para peretas dan dikodekan ke dalam kumpulan aturan yang digunakan oleh alat seperti Hashcat. Kompleksitas sejati berasal dari keacakan, bukan dari memenuhi kotak centang.
Ketidakpastian dan Ketahanan terhadap Serangan Pola
Peretasan kata sandi modern tidak murni brute-force. Alat seperti Hashcat dan John the Ripper menggunakan serangan berbasis aturan yang menerapkan transformasi pada kata-kata kamus — mengkapitalisasi huruf pertama, mengganti a dengan @, menambahkan tahun, dan sebagainya. Kata sandi seperti P@ssw0rd!23 tampak kompleks tetapi mudah dipecahkan karena mengikuti pola substitusi yang sudah dikenal.
Ketidakpastian sejati berarti:
- Tidak ada kata kamus, bahkan dengan substitusi leetspeak
- Tidak ada keyboard walk (
qwerty,zxcvbn) - Tidak ada informasi pribadi (nama, tanggal lahir, nama hewan peliharaan)
- Tidak ada pola yang dapat diprediksi di awal atau akhir (akhiran
!, awalan1)
Sumber ketidakpastian yang paling andal adalah generator angka acak yang aman secara kriptografis (CSPRNG), yang digunakan secara internal oleh pengelola kata sandi yang terpercaya.
Keunikan di Seluruh Akun
Penggunaan ulang kredensial mengubah satu pelanggaran menjadi kompromi sistemik. Ketika layanan yang menyimpan kata sandi dalam teks biasa atau MD5 yang lemah diretas, penyerang segera menjalankan kredensial tersebut terhadap target bernilai tinggi lainnya — teknik yang disebut credential stuffing. Layanan seperti Gmail, portal perbankan, dan panel kontrol hosting adalah target utama.
Setiap akun harus memiliki kata sandi yang berbeda. Ini tidak mungkin dilakukan secara operasional tanpa pengelola kata sandi bagi sebagian besar pengguna yang mengelola lebih dari beberapa akun.
Metode untuk Mengevaluasi Kekuatan Kata Sandi
Perhitungan Entropi
Rumus entropi H = L × log₂(N) adalah ukuran yang paling objektif. Berikut adalah nilai referensi untuk penilaian praktis:
| Contoh Kata Sandi | Panjang | Kumpulan Karakter | Entropi (bit) | Ketahanan |
|---|---|---|---|---|
| — | — | — | — | — |
| `password` | 8 | 26 | ~37,6 | Dapat diabaikan |
| `P@ssw0rd` | 8 | 95 | ~52,6 | Jam (GPU) |
| `Tr0ub4dor&3` | 11 | 95 | ~72,3 | Bulan |
| `correct-horse-battery-staple` | 28 | 26+1 | ~130+ | Berabad-abad |
| 16 karakter ASCII acak lengkap | 16 | 95 | ~105 | Astronomis |
Perhatikan bahwa correct-horse-battery-staple — frasa sandi XKCD yang terkenal — mencapai entropi luar biasa melalui panjang meskipun hanya menggunakan huruf kecil dan tanda hubung. Inilah kekuatan panjang dibandingkan kompleksitas.
Alat Peretasan Kata Sandi yang Digunakan oleh Profesional Keamanan
Insinyur keamanan dan penguji penetrasi menggunakan alat-alat berikut untuk menguji kebijakan kata sandi secara empiris:
Hashcat adalah alat pemulihan kata sandi yang dipercepat GPU standar industri. Alat ini mendukung lebih dari 300 jenis hash dan dapat menjalankan serangan kamus, brute-force, berbasis aturan, dan hibrida. Pada RTX 4090 modern, Hashcat dapat menguji sekitar 164 miliar hash MD5 per detik — konteks yang membuat angka entropi di atas terasa nyata.
John the Ripper adalah peretas berbasis CPU dengan kemampuan serangan berbasis aturan yang kuat dan dukungan format hash yang luas. Alat ini umumnya digunakan dalam konteks forensik dan audit.
zxcvbn adalah estimator kekuatan kata sandi sisi klien yang dikembangkan oleh Dropbox. Tidak seperti kalkulator entropi sederhana, alat ini memodelkan perilaku penyerang yang realistis dengan memeriksa kamus, pola umum, urutan keyboard, dan format tanggal. Ini adalah pengukur kekuatan yang paling akurat untuk aplikasi yang menghadap pengguna.
Untuk menguji hash kata sandi secara offline menggunakan Hashcat dalam mode benchmark:
hashcat -b -m 0Untuk menjalankan serangan kamus dengan aturan terhadap file hash MD5:
hashcat -a 0 -m 0 hashes.txt /usr/share/wordlists/rockyou.txt -r /usr/share/hashcat/rules/best64.ruleAlat Pengujian Kata Sandi Online
Beberapa alat berbasis browser menyediakan penilaian kekuatan yang cepat:
- Have I Been Pwned (HIBP) Password Check — memeriksa awalan hash SHA-1 kata sandi terhadap database lebih dari 800 juta kata sandi yang bocor menggunakan model k-anonymity, artinya kata sandi lengkap tidak pernah dikirimkan.
- Bitwarden Password Strength Tester — menggunakan zxcvbn di baliknya untuk estimasi waktu crack yang realistis.
- Kaspersky Password Checker — menyediakan analisis panjang, kompleksitas, dan pola.
Peringatan operasional penting: Jangan pernah memasukkan kata sandi nyata yang sedang digunakan ke alat online mana pun. Gunakan kredensial uji yang serupa secara struktural tetapi berbeda. Bahkan alat yang menggunakan model k-anonymity tidak boleh menerima kata sandi produksi Anda yang sebenarnya.
Pengukur Kekuatan Kata Sandi dalam Aplikasi
Pengukur kekuatan bawaan sangat bervariasi kualitasnya. Banyak yang menggunakan heuristik sederhana (ambang panjang, kehadiran kelas karakter) yang dapat dimanipulasi. Pengukur yang menilai P@ssw0rd1! sebagai “Kuat” adalah menyesatkan — string tersebut muncul di setiap kamus pelanggaran utama. Pilih aplikasi yang mengintegrasikan zxcvbn atau estimator yang sadar pola yang setara.
Vektor Serangan Kata Sandi: Apa yang Sebenarnya Anda Pertahankan
Memahami model ancaman mempertajam setiap keputusan tentang kebijakan kata sandi.
Serangan brute-force secara sistematis mencoba setiap kombinasi yang mungkin dalam ruang karakter. Serangan ini dibatasi secara komputasi dan menjadi tidak praktis di atas ~80 bit entropi dengan perangkat keras saat ini.
Serangan kamus menggunakan daftar kata yang berasal dari kata sandi nyata yang bocor dalam pelanggaran. Dataset RockYou (14 juta kata sandi) dan penerusnya mencakup sebagian besar kata sandi yang dipilih manusia. Jika kata sandi Anda muncul dalam bahasa alami, kata sandi tersebut ada dalam kamus.
Serangan berbasis aturan menerapkan aturan transformasi pada kata-kata kamus — kapitalisasi, penambahan angka, substitusi simbol. Serangan ini memecahkan sebagian besar kata sandi “kompleks” yang dibuat pengguna dengan memodifikasi kata-kata sederhana.
Credential stuffing menggunakan pasangan nama pengguna/kata sandi dari satu pelanggaran untuk menyerang layanan lain. Ini sepenuhnya dikalahkan dengan keunikan kata sandi.
Serangan rainbow table menggunakan pemetaan hash-ke-teks-biasa yang telah dihitung sebelumnya. Serangan ini dikalahkan dengan hashing kata sandi yang tepat menggunakan salt unik (bcrypt, Argon2, scrypt) di sisi server — tanggung jawab aplikasi, bukan pengguna.
Rekayasa sosial dan phishing melewati kekuatan kata sandi sepenuhnya. Autentikasi multi-faktor adalah pertahanan utama di sini.
Praktik Terbaik untuk Membuat dan Mengelola Kata Sandi yang Kuat
Gunakan Pengelola Kata Sandi
Pengelola kata sandi adalah peningkatan keamanan dengan leverage tertinggi yang tersedia bagi sebagian besar pengguna dan administrator. Alat seperti Bitwarden (open-source, telah diaudit), 1Password, dan KeePassXC (offline, penyimpanan lokal) menghasilkan kata sandi acak yang aman secara kriptografis dan menyimpannya dalam vault terenkripsi. Ini menghilangkan beban kognitif menghafal dan membuat kata sandi acak 20+ karakter yang unik menjadi praktis untuk setiap akun.
Untuk administrator sistem yang mengelola kredensial di seluruh server — termasuk lingkungan VPS Hosting dan Server Dedicated — pengelola kata sandi yang berorientasi tim dengan kontrol akses berbasis peran (seperti Bitwarden Teams atau HashiCorp Vault) adalah infrastruktur yang esensial.
Hasilkan Kata Sandi dengan CSPRNG
Jangan pernah membuat kata sandi secara manual. Gunakan generator pengelola kata sandi Anda, atau di Linux/macOS:
# Generate a 20-character random password using /dev/urandom
LC_ALL=C tr -dc 'A-Za-z0-9!@#$%^&*()-_=+' < /dev/urandom | head -c 20; echo# Generate a Diceware-style passphrase using OpenSSL
openssl rand -base64 32Terapkan Autentikasi Multi-Faktor (MFA)
MFA adalah lapisan yang tidak dapat dinegosiasikan untuk akun mana pun yang memiliki nilai signifikan. Bahkan kata sandi yang telah dikompromikan tidak dapat memberikan akses tanpa faktor kedua. Pilih aplikasi autentikator TOTP (Authy, Google Authenticator, Aegis) daripada 2FA berbasis SMS, yang rentan terhadap serangan SIM-swapping. Untuk lingkungan dengan jaminan tertinggi, gunakan kunci keamanan perangkat keras (YubiKey, FIDO2) yang tahan phishing berdasarkan desainnya.
Pada server yang menjalankan aplikasi web atau panel kontrol — termasuk lingkungan yang dikelola melalui Panel Kontrol VPS — terapkan MFA di lapisan aplikasi dan pertimbangkan autentikasi berbasis kunci SSH sebagai pengganti login SSH berbasis kata sandi sepenuhnya.
Terapkan Kebijakan Kata Sandi yang Kuat di Tingkat Sistem
Untuk administrator yang mengelola server Linux, PAM (Pluggable Authentication Modules) menyediakan penegakan kebijakan kata sandi yang terperinci. Instal dan konfigurasikan libpam-pwquality:
apt install libpam-pwqualityKemudian edit /etc/security/pwquality.conf:
minlen = 16
minclass = 3
maxrepeat = 2
gecoscheck = 1
dictcheck = 1Ini memberlakukan panjang minimum 16 karakter, memerlukan karakter dari setidaknya 3 kelas, melarang lebih dari 2 karakter identik berturut-turut, dan memeriksa terhadap kata kamus dan bidang GECOS pengguna (nama).
Untuk kebijakan penuaan kata sandi, edit /etc/login.defs:
PASS_MAX_DAYS 90
PASS_MIN_DAYS 1
PASS_WARN_AGE 14Pantau Pelanggaran Kredensial
Integrasikan pemantauan pelanggaran ke dalam operasi keamanan Anda. Have I Been Pwned menawarkan API gratis untuk memeriksa alamat email terhadap database pelanggaran yang diketahui. Untuk penggunaan organisasi, layanan seperti SpyCloud atau Enzoic menyediakan pemantauan kredensial real-time dan dapat memicu reset kata sandi paksa ketika kredensial karyawan muncul dalam dataset pelanggaran.
Hashing Kata Sandi yang Aman di Sisi Server
Jika Anda mengoperasikan aplikasi web yang menyimpan kredensial pengguna — baik di Web Hosting Bersama maupun lingkungan dedicated — jangan pernah menyimpan kata sandi dalam teks biasa atau dengan algoritma hashing yang lemah (MD5, SHA-1, SHA-256 tanpa salt). Gunakan fungsi hashing kata sandi yang dibuat khusus:
- Argon2id — pemenang Password Hashing Competition; direkomendasikan oleh OWASP untuk aplikasi baru
- bcrypt — didukung secara luas, telah teruji; gunakan faktor kerja 12 atau lebih tinggi
- scrypt — memory-hard; ketahanan yang baik terhadap serangan berbasis GPU
Contoh menggunakan library argon2-cffi Python:
from argon2 import PasswordHasher
ph = PasswordHasher(time_cost=2, memory_cost=65536, parallelism=2)
hash = ph.hash("user_supplied_password")
# Verify:
ph.verify(hash, "user_supplied_password")Frasa Sandi sebagai Alternatif Praktis
Untuk kata sandi yang harus dihafal (kata sandi master pengelola kata sandi, kunci enkripsi disk penuh), frasa sandi Diceware menawarkan keseimbangan terbaik antara entropi dan kemudahan diingat. Lempar dadu fisik lima kali untuk memilih setiap kata dari Daftar Kata Besar EFF. Lima kata menghasilkan sekitar 64,6 bit entropi; enam kata menghasilkan 77,5 bit.
Example: "clam-unmasked-revival-stunt-dagger"
Entropy: ~64.6 bits (5 words × 12.92 bits)Ini lebih kuat dari sebagian besar kata sandi “kompleks” yang dipilih pengguna dan jauh lebih mudah diingat.
Melindungi Kredensial di Seluruh Infrastruktur Hosting Anda
Keamanan kata sandi melampaui akun individual ke seluruh tumpukan infrastruktur. Administrator yang mengelola lingkungan hosting harus menerapkan kontrol kredensial berlapis:
- Akses SSH: Nonaktifkan autentikasi kata sandi sepenuhnya; gunakan pasangan kunci Ed25519 atau RSA-4096. Simpan kunci privat dengan frasa sandi yang kuat.
- Kredensial database: Gunakan kata sandi yang panjang dan dihasilkan secara acak untuk pengguna database. Jangan pernah menggunakan akun database root untuk koneksi aplikasi.
- Akun panel kontrol: Terapkan kata sandi yang kuat dan MFA untuk semua login panel kontrol. Platform yang dapat diakses melalui VPS dengan cPanel harus memiliki penegakan kekuatan kata sandi cPanel yang diatur ke skor minimum 65.
- Akun email: Kata sandi email yang lemah adalah vektor serangan utama untuk pengambilalihan akun. Jika Anda mengelola Email Hosting, terapkan kebijakan kata sandi yang kuat di tingkat server email dan aktifkan DMARC, DKIM, dan SPF untuk mengurangi paparan phishing.
- Kunci privat SSL/TLS: Lindungi kunci privat yang terkait dengan Sertifikat SSL dengan izin sistem file (
chmod 600) dan, jika memungkinkan, simpan dalam modul keamanan perangkat keras (HSM) atau pengelola rahasia.
Kekuatan Kata Sandi vs. Kebijakan Kata Sandi: Perbandingan
| Dimensi | Tanggung Jawab Pengguna | Tanggung Jawab Administrator |
|---|---|---|
| — | — | — |
| Pembuatan kata sandi | Gunakan pengelola berbasis CSPRNG | Terapkan persyaratan entropi minimum |
| Penyimpanan | Vault terenkripsi (pengelola kata sandi) | Argon2id/bcrypt dengan salt unik |
| Pencegahan penggunaan ulang | Kata sandi unik per akun | Terapkan melalui parameter PAM `remember` |
| Deteksi pelanggaran | Pantau HIBP | Integrasikan API pelanggaran ke alur autentikasi |
| MFA | Aktifkan di semua akun | Terapkan di tingkat aplikasi/server |
| Rotasi | Ubah saat dicurigai dikompromikan | Tetapkan kedaluwarsa berbasis kebijakan (90–180 hari) |
| Akses SSH | Gunakan pasangan kunci | Nonaktifkan `PasswordAuthentication yes` di `sshd_config` |
Matriks Keputusan dan Poin Teknis Utama
Gunakan daftar periksa ini untuk menilai dan memperkuat postur kata sandi Anda saat ini:
- Target entropi: Targetkan minimum 80 bit untuk akun umum; 100+ bit untuk akses istimewa (root server, kata sandi master pengelola kata sandi, kunci enkripsi).
- Batas panjang minimum: Jangan pernah menerima kata sandi yang lebih pendek dari 12 karakter di sistem mana pun yang Anda kendalikan; pilih 16–20 untuk akun pengguna, 32+ untuk akun layanan dan kunci API.
- Kumpulan karakter: Gunakan ASCII cetak lengkap untuk kata sandi yang dihasilkan secara acak; gunakan Diceware untuk frasa sandi yang dihafal.
- Keunikan: Toleransi nol untuk penggunaan ulang kredensial. Terapkan pengelola kata sandi untuk membuat ini layak secara operasional.
- Algoritma hashing: Argon2id adalah standar emas saat ini untuk penyimpanan kata sandi sisi server. Migrasi dari bcrypt hanya jika Argon2id tersedia dalam tumpukan Anda.
- Lapisan MFA: TOTP minimum; FIDO2/WebAuthn untuk akun istimewa dan administratif.
- Penguatan SSH: Nonaktifkan login SSH berbasis kata sandi di semua server. Gunakan
PasswordAuthentication nodi/etc/ssh/sshd_config. - Pemantauan pelanggaran: Berlangganan notifikasi HIBP untuk semua domain email organisasi.
- Frekuensi audit: Jalankan audit kata sandi terhadap database hash Anda sendiri menggunakan Hashcat setiap kuartal untuk mengidentifikasi kredensial yang lemah sebelum penyerang melakukannya.
- Penegakan kebijakan: Gunakan PAM
pwqualitypada sistem Linux; terapkan kontrol setara di Windows melalui Group Policy (Fine-Grained Password Policies).
Pertanyaan yang Sering Diajukan
Berapa panjang kata sandi minimum yang direkomendasikan oleh NIST pada tahun 2024?
NIST SP 800-63B menetapkan minimum absolut 8 karakter untuk kata sandi yang dipilih pengguna, tetapi secara eksplisit merekomendasikan agar verifier mengizinkan kata sandi hingga setidaknya 64 karakter. Praktisi keamanan harus memberlakukan minimum praktis 12–16 karakter dan mendorong frasa sandi 20+ karakter untuk akun sensitif.
Apakah kata sandi 12 karakter dengan simbol lebih kuat dari frasa sandi 20 karakter huruf kecil?
Belum tentu. Frasa sandi 20 karakter huruf kecil yang dihasilkan secara acak memiliki sekitar 94 bit entropi (20 × 4,70), sementara kata sandi ASCII campuran 12 karakter memiliki sekitar 78,8 bit (12 × 6,57). Frasa sandi yang lebih panjang menang dalam hal entropi meskipun menggunakan kumpulan karakter yang lebih kecil — panjang bertambah lebih cepat daripada keragaman karakter.
Apa perbedaan antara serangan kamus dan serangan brute-force?
Serangan brute-force mencoba setiap kombinasi karakter yang mungkin dalam ruang yang ditentukan — serangan ini menyeluruh tetapi dibatasi secara komputasi. Serangan kamus menggunakan daftar kata yang dikurasi dari kata sandi nyata, kata-kata umum, dan pola yang diketahui. Serangan kamus memecahkan sebagian besar kata sandi yang dipilih manusia dalam hitungan detik; brute-force diperuntukkan bagi kata sandi pendek di mana ruang pencarian penuh dapat dijangkau.
Haruskah saya secara rutin mengganti kata sandi meskipun tidak ada pelanggaran?
Panduan NIST saat ini (SP 800-63B) secara eksplisit merekomendasikan agar tidak melakukan rotasi kata sandi periodik yang diwajibkan tanpa bukti kompromi, karena rotasi paksa mendorong pengguna membuat perubahan yang dapat diprediksi dan bertahap (misalnya, Password1 menjadi Password2). Ubah kata sandi segera setelah pelanggaran yang dikonfirmasi atau dicurigai, dan rotasi kredensial akun layanan sesuai jadwal yang ditentukan (90–180 hari) sebagai praktik manajemen risiko.
Bagaimana cara memeriksa apakah kata sandi saya sudah terekspos dalam pelanggaran data tanpa mengirimkannya ke server pihak ketiga?
Gunakan API Pwned Passwords Have I Been Pwned dengan implementasi k-anonymity-nya. Klien Anda menghitung hash SHA-1 dari kata sandi, mengirimkan hanya 5 karakter pertama dari hash tersebut ke API, dan menerima kembali semua akhiran hash yang cocok. Hash lengkap — dan karenanya kata sandi — tidak pernah meninggalkan mesin Anda. Ini dapat di-script secara langsung:
PASSWORD="YourTestPassword"
HASH=$(echo -n "$PASSWORD" | sha1sum | awk '{print toupper($1)}')
PREFIX="${HASH:0:5}"
SUFFIX="${HASH:5}"
curl -s "https://api.pwnedpasswords.com/range/$PREFIX" | grep "$SUFFIX"Jika perintah mengembalikan hasil, kata sandi tersebut telah terlihat dalam pelanggaran dan tidak boleh digunakan.
