Skip to content

dragonGR/PyCipher

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

PyCipher

PyCipher is a focused local password manager for Python. It stores passwords in an encrypted vault protected by a master password, and it also includes a strong password generator for day to day CLI use.

The goal of the project is simple: keep password management local, scriptable, and easy to trust.

Features

  • Encrypted local vault backed by cryptography
  • Master-password unlock flow
  • CLI commands to initialize, add, retrieve, list, and remove entries
  • Secure password generation with policy controls
  • Ambiguous character filtering for safer manual use
  • Installable package with a pycipher command
  • Test coverage for password generation and vault handling

Requirements

  • Python 3.11+
  • cryptography

Installation

pip install .

After installation, use:

pycipher --help

You can also run the compatibility entrypoint:

python main.py --help

Quick Start

Create a new encrypted vault:

pycipher init

Generate a password without storing it:

pycipher generate --length 24

Store a generated password in the vault:

pycipher add github --username alex@example.com --generate --length 24

List stored services:

pycipher list

Retrieve an entry:

pycipher get github --show-password

Remove an entry:

pycipher remove github

Vault Location

By default the vault is stored at:

~/.pycipher/vault.json

You can override it with --vault:

pycipher --vault /path/to/vault.json list

Password Generation Options

PyCipher supports practical password policies:

  • --length
  • --no-lowercase
  • --no-uppercase
  • --no-digits
  • --no-symbols
  • --allow-ambiguous

Example:

pycipher generate --length 32 --no-symbols

Security Notes

  • The vault is encrypted locally before being written to disk.
  • Master passwords are never stored in the repository or config files.
  • Vault files are written with restrictive permissions when supported by the host OS.
  • PyCipher is designed as a local CLI tool, not a cloud sync service.

Development

Run the test suite with:

PYTHONPATH=src python -m unittest discover -s tests

Roadmap

  • Entry update command
  • Tags and search filters
  • Clipboard integration with timed clear
  • Import and export helpers for migration

License

This project is licensed under the MIT License.

About

Python password and passphrase toolkit for secure generation, policy enforcement, and strength analysis.

Topics

Resources

License

Stars

Watchers

Forks

Contributors

Languages