SandiFA
Deterministic Finite Automaton · Password Policy Engine

Setiap karakter yang Anda ketik menggerakkan sebuah automaton.

SandiFA memvalidasi kata sandi bukan dengan daftar aturan if/else, melainkan dengan lima automaton hingga (finite automata) yang berjalan paralel dan bergabung menjadi satu DFA produk. Ketik kata sandi di bawah untuk melihat state automaton berubah secara live.

SIMULATOR DFA0 karakter

👁 tampilkan karakter
Menunggu input — DFA berada di state awal q₀.

Contoh Uji Coba (klik untuk isi otomatis)

Vektor state produk saat ini · q = (len, U, L, D, S)

len0
U0
L0
D0
S0

Jejak transisi δ (log per karakter)

— belum ada transisi —

SYARAT PENERIMAAN (F)0/5

  • · Panjang ≥ 8 karakter — M₁ mencapai q₈
  • · ≥1 huruf besar (A–Z) — M₂ mencapai q₁
  • · ≥1 huruf kecil (a–z) — M₃ mencapai q₁
  • · ≥1 digit (0–9) — M₄ mencapai q₁
  • · ≥1 karakter khusus (!@#$%^&*_-+=) — M₅ mencapai q₁

Status alfabet Σ

Semua karakter valid (∈ Σ)

DIAGRAM AUTOMATON PRODUK M = M₁ × M₂ × M₃ × M₄ × M₅skema, bukan skala sebenarnya

Definisi Formal

Automaton produk sebagai konstruksi teori bahasa formal

M = (Q, Σ, δ, q₀, F)

Q = {0..8} × {0,1} × {0,1} × {0,1} × {0,1} × {trap}
Σ = huruf besar ∪ huruf kecil ∪ digit ∪ simbol khusus
q₀ = (0, 0, 0, 0, 0)
F = { (l,u,w,d,s) ∈ Q | l = 8 ∧ u=w=d=s = 1 }
δ = transisi produk dari lima sub-automaton M₁…M₅, ditambah transisi ke state trap untuk setiap karakter ∉ Σ (menjamin non-recoverable reject / whitespace injection).
Sub-automaton|Q|Bahasa yang dikenali
M₁ (panjang)9{ w | |w| ≥ 8 }, dihitung dg saturating counter
M₂ (huruf besar)2Σ* A-Z Σ*
M₃ (huruf kecil)2Σ* a-z Σ*
M₄ (digit)2Σ* 0-9 Σ*
M₅ (simbol)2Σ* [simbol] Σ*

Karena interseksi bahasa reguler bersifat tertutup (closed under intersection), gabungan lima automaton di atas — dibentuk melalui konstruksi produk (product construction) — tetap merupakan DFA tunggal dengan |Q| = 9×2×2×2×2 + 1(trap) = 145 state.