JPassword is a desktop password manager: strong random passwords, Fernet encryption, PBKDF2 key derivation from a master password, and multiple profiles (work, personal, etc.) in separate JSON files.
Everything stays on your machine — no cloud sync, no account.
| Generate | Configurable length, optional symbols |
| Save / View | Site name + encrypted password per profile |
| Profiles | Create, rename, delete; switch at login |
| Settings | Default length and symbol toggle |
| Security | Master password unlocks per-profile Fernet key |
git clone https://github.com/krwg/j-password.git
cd j-password
pip install -r requirements.txt
python password_manager.pyOn first run, create a profile and choose a strong master password. You need it every time you open the vault.
- Select or create a profile.
- Enter master password → derives encryption key (PBKDF2).
- Generate tab — copy a random password.
- Save tab — store it under a site label (encrypted in
{profile}_passwords.json). - View tab — decrypt and read entries after login.
Files created locally: profiles.json, *_passwords.json.
- Master password — if you lose it, encrypted data cannot be recovered.
- Salt — demo uses a fixed salt; production use should use random per-profile salts (see roadmap in code history).
- Backup — copy
profiles.jsonand*_passwords.jsonto a safe place. - Updates — keep
cryptographypackage current.
- Python 3.x with tkinter (usually bundled on Windows/macOS; on Linux:
python3-tk) cryptography— seerequirements.txt
- Per-profile random salts for PBKDF2
- Password strength meter
- Export / import
- Optional browser autofill
Open source portfolio project. Use at your own risk for real secrets until hardened for production.
By krwg · Release 1.0