Skip to content

A powerful and flexible command-line password generator that helps you create strong, secure passwords with ease.

License

Notifications You must be signed in to change notification settings

Amul-Thantharate/CipherSmith

Repository files navigation

🔐 CipherSmith

PyPI version Python Versions License: MIT Code style: black

A powerful CLI password generator with real-time strength analysis and advanced security features. Built with security and usability in mind! 🚀

✨ Features

  • 🎯 Generate cryptographically secure passwords
  • 📊 Real-time password strength analysis using zxcvbn
  • 🔍 Detailed password security feedback and suggestions
  • 📝 Password history tracking with tags and descriptions
  • 🔎 Search through password history
  • 📈 Password generation statistics
  • 🎨 Exclude similar characters option
  • 🛡️ Advanced pattern detection and security analysis

🚀 Quick Start

Prerequisites

  • Python 3.9 or higher
  • pip (Python package installer)

Installation

pip install CipherSmith

Basic Usage

# Generate a secure password
CipherSmith generate

# Generate with specific requirements
CipherSmith generate --uppercase 2 --lowercase 6 --numbers 2 --special-chars 2

# Check password strength
CipherSmith check "your-password-here"

# Check with detailed analysis
CipherSmith check "your-password-here" --verbose

# View password history
CipherSmith history

# Search passwords
CipherSmith search "github"

🔍 Password Strength Analysis

CipherSmith includes advanced password strength analysis:

  • Real-time strength visualization
  • Pattern detection
  • Crack time estimation
  • Security suggestions
  • Comprehensive feedback

Example output:

Password Strength Analysis:
Score: 4/4
Crack Time: 1961.20 seconds
Feedback: Strong password!

Additional Details:
Length: 18
Character Sets: lowercase, uppercase, numbers, special
Patterns Found: None
Suggestions: None

📚 Documentation

For detailed usage examples, see our Demo Guide.

Common topics:

🔧 Dependencies

  • typer>=0.9.0
  • rich>=10.0.0
  • zxcvbn-python>=4.4.24
  • cryptography>=41.0.0
  • sqlalchemy>=2.0.0
  • click>=8.0.0
  • colorama>=0.4.4

📦 Versioning and Releases

When you've added new features or made changes to the code, follow these steps to create a new release:

  1. Update version number in pyproject.toml:

    [tool.poetry]
    version = "x.y.z"  # Increment according to semantic versioning
  2. Create and push a new tag:

    # Create a new tag
    git tag -a v1.2.3 -m "Release version 1.2.3"
    
    # Push the tag
    git push origin v1.2.3

    Version numbering follows Semantic Versioning:

    • MAJOR version (x) - Incompatible API changes
    • MINOR version (y) - Added functionality (backwards-compatible)
    • PATCH version (z) - Bug fixes (backwards-compatible)
  3. The GitHub Actions workflow will automatically:

    • Build the Python package
    • Sign the package using Sigstore
    • Create a GitHub release
    • Upload the signed distribution packages
  4. The release will be available on:

    • GitHub Releases page
    • PyPI (after successful publication)

Example scenarios:

  • Added new command: v1.1.0
  • Fixed a bug: v1.0.1
  • Breaking change: v2.0.0

🤝 Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

📝 License

This project is licensed under the MIT License - see the LICENSE file for details.

🌟 Author

Amul Thantharate ([email protected])

🔄 Version

Current version: 1.2.0

About

A powerful and flexible command-line password generator that helps you create strong, secure passwords with ease.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages