Detektor Kekuatan Kata Sandi
Deteksi kekuatan kata sandi, nilai entropi, dan kelemahan umum. Semua deteksi dilakukan secara lokal di browser Anda.
Deteksi Kekuatan
- Panjang
- Huruf Kecil
- Huruf Besar
- Angka
- Simbol
- Urutan
- Pengulangan
- Daftar Hitam
- Mode Keyboard
- Tanggal
- Periode
- Terlihat bagus! Saat ini tidak ada saran perbaikan.
Cara Penggunaan
Fitur Unggulan
- 100% analisis lokal, prioritas perlindungan privasi.
- Pendeteksi tingkat lanjut: pola keyboard, tanggal, pengulangan berkala, urutan, pengulangan, dll.
- Pencocokan daftar hitam normalisasi Leet (misalnya Pa$$w0rd → password).
- Kebijakan fleksibel: panjang minimum dan persyaratan jenis karakter.
- Impor/ekspor kebijakan JSON dengan satu tombol.
- Analisis di detektor dengan satu tombol
Pertanyaan Umum
Entropi digunakan untuk memperkirakan ukuran ruang pencarian berdasarkan himpunan karakter dan panjang. Jika ada struktur (pola, kata), entropi efektif akan berkurang meskipun bit aslinya terlihat tinggi.
- Urutan berurutan, seperti abcde atau 12345.
- Pengulangan panjang karakter yang sama (seperti aaaa).
- Cocok dengan kata/pola lemah umum dalam daftar hitam kustom.
- Polanya pergerakan keyboard atau urutan tombol bersebelahan (seperti qwerty, asdf).
- Gaya tanggal (seperti YYYYMMDD, dd-mm-yyyy).
- Substring berulang (seperti abcabc, 121212).
- Normalisasi Leet dilakukan sebelum pencocokan daftar hitam (seperti Pa$$w0rd → password).
Waktu pecah hanya perkiraan kasar. Serangan sebenarnya akan menggunakan kamus, mask, dan GPU. Kata sandi pendek dan dengan struktur jelas sering jauh lebih lemah daripada entropi tampaknya.
- Pilih frasa kunci acak yang lebih panjang (lebih dari 4 kata) atau kata sandi yang dihasilkan oleh pengelola kata sandi.
- Hindari informasi pribadi, tanggal, dan struktur yang dapat diprediksi.
- Gunakan pengelola kata sandi, dan aktifkan otentikasi multi-faktor (MFA) sebaik mungkin.
- Jangan gunakan kata sandi yang sama berulang kali; ganti hanya jika terjadi kebocoran.
Cara Mendeteksi Kekuatan Kata Sandi Melalui Bahasa Pemrograman
Berikut adalah contoh minimum menggunakan pustaka komunitas yang teruji, pilih sesuai tumpukan teknologi Anda.
<!-- CDN -->
<script src="https://unpkg.com/[email protected]/dist/zxcvbn.js"></script>
<script>
const res = zxcvbn('P@ssw0rd!');
console.log(res.score, res.crack_times_display);
</script>
// npm i @zxcvbn-ts/core
import { zxcvbn } from '@zxcvbn-ts/core';
const result = zxcvbn('P@ssw0rd!');
console.log(result.score, result.guesses_log10);
composer require bjeavons/zxcvbn-php
<?php
require __DIR__ . '/vendor/autoload.php';
use ZxcvbnPhp\\Zxcvbn;
$zxcvbn = new Zxcvbn();
$res = $zxcvbn->passwordStrength('P@ssw0rd!');
echo $res['score'];
pip install zxcvbn
from zxcvbn import zxcvbn
res = zxcvbn('P@ssw0rd!')
print(res['score'], res['crack_times_display'])
go get github.com/nbutton23/zxcvbn-go
package main
import (
"fmt"
zxcvbn "github.com/nbutton23/zxcvbn-go"
)
func main() {
res := zxcvbn.PasswordStrength("P@ssw0rd!", nil)
fmt.Println(res.Score, res.Guesses)
}
# Add dependency
cargo add zxcvbn
use zxcvbn::zxcvbn;
fn main() {
match zxcvbn("P@ssw0rd!", &[]) {
Ok(estimate) => {
println!("score: {}", estimate.score()); // 0..4
if let Some(times) = estimate.crack_times() {
println!("offline: {:?}", times.offline_slow_hashing_1e4_per_second());
}
}
Err(err) => eprintln!("zxcvbn error: {err}"),
}
}
Keterangan: Pustaka - pustaka ini memberikan perkiraan kekuatan dan pola, mungkin sedikit berbeda dengan item deteksi di halaman ini.