Every analyzer works independently, mutates the shared context, and produces isolated telemetry.
Groups characters and compiles size counts to initialize the analysis context.
Computes default bits of entropy assuming fully independent, random characters.
Runs repetition, substring, sequence, and keyboard walk checks to extract structural spans.
Unwinds common dictionary substitutions to generate plaintext variants.
Scans original and mutated strings against the loaded wordlist dictionary.
Calculates mathematical penalties for detected patterns and reduces the final entropy score.
Maps final effective bits to a 0–100 score and assigns a security strength tier.
Calculates crack times across throttled/unthrottled online models and slow/fast offline hashing profiles.
Deduplicates and evaluates findings to output severity-rated user suggestions.
Why we built PassGuard from the ground up rather than wrapping external libraries.
Monolithic estimators hide intermediate outputs. PassGuard details context modifications at each step, allowing you to debug exact character penalties.
Built completely in standard Python with no required external dependencies, allowing trivial inclusion in lightweight environments.
Allows replacing individual stages easily without restructuring the core context orchestration class.