Project Info
Category:

IAM

Date:

17 January, 2025

Overview

GitHub - PassChecker

PassChecker is a Python-based tool designed to evaluate the strength of a password and identify potential weaknesses. The tool incorporates multiple levels of password strength evaluation, including length checks, character diversity, entropy analysis, detection of repetitive or sequential patterns, and integration with the “Have I Been Pwned” (HIBP) API for breach detection.


Features

1. Password Strength Evaluation

  • Passwords are evaluated across 5 levels of strength:
    • Level 0 (Hidden): Reserved for invalid or extremely weak passwords (e.g., empty passwords).
    • Level 1: Minimum length requirement.
    • Level 2: Inclusion of at least two character types (uppercase, lowercase, digits, special characters).
    • Level 3: Inclusion of at least three character types.
    • Level 4: Advanced criteria including no repetition, no sequential patterns, and no breaches.
    • Level 5: High entropy, no inclusion of username, and no weak patterns.

2. Entropy Calculation

Where: H: Entropy – P(x): Probability of the i-th character in the password

  • The formula calculates the unpredictability of the password based on the distribution of its characters. Higher entropy values indicate stronger passwords.

3. Pattern Detection

  • Detects repetitive characters and substrings.
  • Identifies sequential patterns (e.g., 12345abcde54321).

4. Palindrome Check

  • Determines if the password is a palindrome (reads the same backward and forward).

5. Username Validation

  • Ensures the password does not include the username, if provided.

6. Integration with HIBP API

  • Checks if the password has been breached using the Have I Been Pwned API.

7. Configurable Thresholds

  • Adjustable criteria for entropy, repetition, and sequence detection thresholds.

8. Command-Line Interface (CLI)

  • Supports CLI usage with arguments for password and optional username.

To see full project code and guidance, please visit the github repo here:

GitHub - PassChecker