Skip to content

mehmetkahya0/PasswordAlgorithms

Repository files navigation

🔐 Password Algorithms v2.0

Python CustomTkinter Cryptography License

Password Algorithms is a modern security application that combines secure password generation, scientific password strength analysis, and a local encrypted password vault (AES-256). The project provides both a polished Graphical User Interface (GUI) and a feature-rich Terminal Interface (CLI).


🌟 Key Features (v2.0)

🔑 1. Cryptographic Password Generator

  • Full Security: Uses the unpredictable cryptographic secrets engine instead of the random module.
  • Character Pools: Uppercase/lowercase, digits, symbols, and Turkish character options.
  • Advanced Options: Exclude look-alike characters (l, 1, O, 0).
  • Guarantee Filter: Ensures at least one character from each enabled category.
  • Batch Generation: Generate 1-50 alternative passwords in one run.

🔍 2. Scientific Password Strength Analysis

  • Shannon Entropy: Calculates the mathematical entropy (in bits).
  • Advanced Scoring (0-100): Weighted score based on length, variety, and patterns.
  • Pattern Detection: Keyboard sequences (qwerty), sequential characters (abc, 123), repeated characters (aaa), and leak checks.
  • Leet Speak Dictionary: Checks leet-speak variants of weak passwords (p@ssw0rd -> password).
  • k-Anonymity Leak Check: Queries the Have I Been Pwned API using only the first 5 characters of the SHA-1 hash, without exposing the password.
  • Crack Time Estimation: Realistic estimates for different hardware scenarios (fast GPU, offline/online attacks, etc.).

📝 3. XKCD Passphrase Generator

  • Creates memorable yet unbreakable passphrases from word lists (Diceware method).
  • Supports Turkish and English word lists.
  • Separator selection (-, ., _, or space).
  • Capitalize initials and optional digit insertion.

🔒 4. AES-256 Encrypted Password Vault

  • End-to-End Encryption: Stores passwords encrypted with AES-256-GCM (Fernet) in the local database.
  • Master Password Security: Vault key derivation uses PBKDF2HMAC (SHA-256, 480,000 iterations).
  • Categories & Search: Filter entries by Social Media, Email, Banking, and more, or use instant search.
  • Export: One-click export to unencrypted CSV.

📜 5. Generation History & Tools

  • History Log: Stores the last 50 generated passwords locally with date and strength, masked.
  • Secure Clipboard: Automatically clears the copied password from the system clipboard after 30 seconds.
  • QR Code Support: Save passwords as QR images for quick phone sharing.

🎨 Design & User Experience (UX)

  • CustomTkinter Interface: Modern design with Dark Mode and Light Mode support.
  • Rich CLI: Tables, progress bars, and interactive guidance in the terminal interface.
  • Debounced Search & Checks: 500ms delayed dynamic analysis and lock-screen transitions while typing to reduce load.

🏗️ Project Architecture

graph TD
    A["main.py (Entry)"] --> B["src/ui/app.py (GUI App)"]
    A --> C["terminal_modern.py (CLI App)"]
    
    B --> D["ThemeManager"]
    B --> E["Sidebar Panel"]
    B --> F["GeneratorPanel"]
    B --> G["CheckerPanel"]
    B --> H["PassphrasePanel"]
    B --> I["VaultPanel"]
    B --> J["HistoryPanel"]
    
    F & G & H & I & J --> K["src/core/"]
    C --> K
    
    K --> L["generator.py"]
    K --> M["checker.py"]
    K --> N["entropy.py"]
    K --> O["passphrase.py"]
    K --> P["vault.py (AES-256)"]
    
    K --> Q["src/utils/"]
    Q --> R["crypto_utils.py (Clipboard & UUID)"]
    Q --> S["export.py (CSV & QR)"]
    Q --> T["hibp_client.py (API k-Anonymity)"]
Loading

📦 Installation

  1. Clone the Repository:

    git clone https://github.com/mehmetkahya0/PasswordAlgorithms.git
    cd PasswordAlgorithms
  2. Install Dependencies:

    pip install -r requirements.txt

🚀 Usage

🖥️ 1. Start the GUI (Recommended)

python main.py

💻 2. Start the Modern CLI

python terminal_modern.py

🧪 3. Run Unit Tests (Pytest)

python -m pytest tests/

🔒 Security Note

Important

Password Algorithms is a local, open-source application. Your master password is never sent to or stored on any server. If you lose the vault file (data/vault.enc) or your master password, you cannot access the stored passwords again. Please keep your master password safe.


📄 License

This project is licensed under the MIT License. See the license file for details.

Releases

No releases published

Packages

 
 
 

Contributors

Languages