Skip to content

smartlegionlab/clipassgen

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

44 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

CliPassGen (Console Smart Password Generator) v4.0.0


Terminal-based smart password generator with deterministic password generation. Generate passwords from secret phrases - same secret always produces the same password, no storage required.

Decentralized by Design: Unlike traditional password managers that store encrypted vaults on central servers, Smart Password Generator stores nothing. Your secrets never leave your device. Passwords are regenerated on-demand β€” no cloud, no database, no trust required.


PyPI - Downloads PyPI Downloads PyPI Weekly Downloads GitHub top language GitHub release PyPI version GitHub license PyPI format GitHub stars GitHub forks


⚠️ Disclaimer

By using this software, you agree to the full disclaimer terms.

Summary: Software provided "AS IS" without warranty. You assume all risks.

Full legal disclaimer: See DISCLAIMER.md


πŸ”„ Breaking Change (v4.0.0)

⚠️ This release uses smartpasslib v4.0.0, which is NOT backward compatible with v2.x.x or v3.x.x

Smart passwords created with v2.x.x or v3.x.x will be different when generated with v4.0.0.

What changed:

  • Dynamic iterations: private key 15-30 steps (was fixed 30), public key 45-60 steps (was fixed 60)
  • Expanded Google-compatible character set (26 special chars + A-Z + a-z + 0-9)
  • Code length extended: now 4-100 characters (was 4-20)
  • Secret phrases now require minimum 12 characters
  • Key derivation with salt separation ("private"/"public")
  • No secret exposure in iteration logs

πŸ“– Full migration instructions β†’ see MIGRATION.md


Core Principles

  • Zero-Storage Security: No passwords or secret phrases are ever stored or transmitted
  • Decentralized Architecture: No central servers, no cloud dependency, no third-party trust required
  • Deterministic Generation: Same secret + same length = same password, every time
  • Memory-Based Security: Your brain is the only password database
  • Terminal-First: Optimized for CLI workflows and scripting
  • Multi-Mode Generation: Smart passwords, strong random, base passwords, auth codes, public keys, verification

What You Can Do:

  1. Generate Smart Passwords: Deterministic passwords from secret phrases
  2. Create Public Keys: Verification keys for secret proof without exposure
  3. Verify Secrets: Check if a secret matches a stored public key
  4. Generate Random Passwords: Cryptographically secure random generation
  5. Create Authentication Codes: Secure codes with character diversity
  6. Interactive Terminal Mode: Menu-driven interface for easy use
  7. Command Line Mode: Scriptable generation for automation
  8. Cross-Platform Operation: Works on any system with Python
  9. No Dependencies: Pure Python with smartpasslib core

Key Features

  • Decentralized & Serverless: No central database, no cloud lock-in, complete user sovereignty
  • Deterministic Security: Identical input β†’ identical output, always
  • Six Generation Modes: Smart, Strong, Base, Code, Public Key, Verify
  • Public Key Verification: Generate and verify keys to prove secret knowledge
  • Interactive & CLI Modes: Both menu-driven and command-line interfaces
  • Hidden Input: Secret phrase entry via getpass (hidden typing)
  • SmartPrinter Output: Beautiful centered and framed terminal text
  • Length Flexibility: 12-100 characters for passwords, 4-100 for codes
  • No Internet Required: All cryptographic operations local

Security Model

  • Proof of Knowledge: Public keys verify secrets without exposing them
  • Decentralized Trust: No third party needed β€” you control your secrets completely
  • Deterministic Certainty: Mathematical certainty in password regeneration
  • Ephemeral Passwords: Passwords exist only in memory during generation
  • Local Computation: No data leaves your terminal
  • No Recovery Backdoors: Lost secret = permanently lost passwords (by design)

Research Paradigms & Publications


Technical Foundation

Powered by smartpasslib v4.0.0+ β€” The core library for deterministic password generation.

Key derivation (same as Python/JS/Kotlin/Go/C# versions v4.0.0):

Key Type Iterations Purpose
Private Key 15-30 (dynamic) Password generation (never stored, never transmitted)
Public Key 45-60 (dynamic) Verification (stored locally)

Character Set (Google-compatible):

!@#$%^&*()_+-=[]{};:,.<>?/ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyz

Validation Rules:

  • Secret phrase: minimum 12 characters
  • Password length: 12-100 characters
  • Code length: 4-100 characters

Decentralized Architecture:

  • No central authority required
  • Metadata can be synced via any channel
  • Your security depends only on your secret phrase
  • Works offline β€” no internet connection required

Generation Modes:

  • Smart Password: Deterministic from secret phrase (BREAKING CHANGE in v4.0.0)
  • Strong Password: Cryptographically secure random generation (unchanged)
  • Base Password: Simple random password generation (unchanged)
  • Authentication Code: Secure code generation for 2FA/MFA (max length extended to 100)
  • Public Key: Generate verification key from secret phrase (NEW)
  • Verify: Check secret against stored public key (NEW)

Installation

git clone https://github.com/smartlegionlab/clipassgen
cd clipassgen
python app.py

or

pip install clipassgen==4.0.0

Quick Usage

Interactive Mode

clipassgen

Command-Line Mode

# Smart password (deterministic, CROSS-PLATFORM!)
clipassgen --smart -s "MyStrongSecretPhrase2026!" -l 16

# Strong random password
clipassgen --strong -l 20

# Base random password
clipassgen --base -l 16

# Authentication code (2FA) - now up to 100 chars
clipassgen --code -l 8

# Generate public key from secret
clipassgen --public -s "MyStrongSecretPhrase2026!"

# Verify secret against public key
clipassgen --verify -s "MyStrongSecretPhrase2026!" -k "public_key_here"

Security Requirements

Secret Phrase

  • Minimum 12 characters (enforced by library)
  • Case-sensitive
  • Use mix of: uppercase, lowercase, numbers, symbols
  • Never store digitally
  • NEVER use your password description as secret phrase

Strong Secret Examples

βœ… "MyStrongSecretPhrase2026!"   β€” mixed case + numbers + symbols
βœ… "P@ssw0rd!LongSecret"         β€” special chars + numbers + length
βœ… "ΠšΠΎΡ‚Π‘Π΅Π³Π΅ΠΌΠΎΡ‚2026НаДиСтС"       β€” Cyrillic + numbers

Weak Secret Examples (avoid)

❌ "short"                       β€” too short, rejected by library
❌ "password"                    β€” dictionary word, too short
❌ "1234567890"                  β€” only digits, too short
❌ "qwerty123"                   β€” keyboard pattern

Password Length Requirements

  • Smart/Strong/Base passwords: 12-100 characters
  • Authentication codes: 4-100 characters (was 4-20)

Decentralized Nature

There is no "forgot password" button. This is by design:

  • No central server can reset your passwords
  • No support team can recover your access
  • Your secret phrase is the ONLY key

This is the price of true decentralization β€” you are completely in control.

Cross-Platform Compatibility

CliPassGen produces identical passwords to:

Platform Application
Python CLI Manager CLI PassMan
Desktop Python Desktop Manager
Desktop C# Desktop C# Manager
CLI C# Manager CLI Manager (C#)
CLI C# Generator CLI Generator (C#)
Web Web Manager
Android Android Manager
Core Libraries smartpasslib, smartpasslib-csharp, etc.

Ecosystem

Core Libraries:

CLI Applications:

Desktop Applications:

Other:

Version History

Version smartpasslib Status Migration Required
v2.x.x and below v2.x.x ❌ Deprecated/Unsupported Must migrate to v4.x.x
v3.x.x v3.x.x ❌ Deprecated/Unsupported Must migrate to v4.x.x
v4.0.0+ v4.0.0+ βœ… Current N/A

License

BSD 3-Clause License

Copyright (Β©) 2026, Alexander Suvorov

Support

Note: Always test password generation with non-essential accounts first. Implementation security depends on proper usage.


Main Interface

Main Interface


Packages

 
 
 

Contributors

Languages