Passwords Manager is a password management tool designed to securely store and generate passwords using encrypted local storage under LocalAppData.
Key Features:
Encrypts passwords using AES algorithm via cryptography library
Generates simple or complex passwords
Manages passwords through an encrypted JSON file format
Automatically migrates from CSV files to encrypted JSON format
Requires encryption key for access; losing it results in permanent password loss
Audience & Benefit:
Ideal for individuals seeking secure, self-contained password management without cloud dependencies. Users gain full control over their encrypted credentials stored locally on their device.
Installation is possible via winget once the package is available. The system emphasizes security through robust encryption while maintaining ease of use and data integrity.
README
Password Manager
Interface
This program manages passwords saved in a passwords.json or passwords.csv file.
It can generate simple and complex passwords and save them to a passwords.json file, and also allows the addition or removal of external passwords.
If your passwords saved in a passwords.csv file, the last version of the system converts to passwords.json automatically.
🔐 Encryption System
Passwords are now automatically encrypted using the AES (Advanced Encryption Standard) algorithm through the cryptography library.
How It Works
When saving: Passwords are automatically encrypted before being saved to the passwords.json file
When reading: Passwords are automatically decrypted when the program displays them
Encryption key: A unique key is generated on first execution and saved in encryption.key
Automatic migration: If you have unencrypted passwords, they will be automatically encrypted on first load
CSV conversion: If you have a passwords.csv file, it will be automatically converted to encrypted JSON and deleted
⚠️ IMPORTANT
Keep the encryption.key file in a safe location! Without it, you won't be able to decrypt your passwords.
Don't share the encryption.key file with anyone.
If you lose the file, your passwords will be permanently lost.
It's no longer necessary to run scripts manually! The system now:
Automatically detects unencrypted passwords when loading the file
Creates a temporary backup before migrating (deleted after success)
Encrypts all passwords automatically
Converts CSV files to encrypted JSON and deletes them
All of this happens transparently on first execution
If you prefer to do the migration manually with more control, you can still use:
python migrate_to_encrypted.py
Data and Installation Compatibility
On Windows, the program is installed in C:\File Programs\Passwords Manager
User data is stored in C:\Users\\AppData\Roaming\Passwords Manager
Compatibility with older versions is maintained by checking previous data/install locations in AppData\Local
During installation, if a previous version is found in AppData\Local\Passwords Manager, the installer migrates passwords.json and the encryption key to AppData\Roaming, then removes the legacy installation before copying the new version
Legacy key filename compatibility is also supported for encrypton.key and encryption.key
Installation
1. Install Dependencies
Option 1 - Windows (using libs.bat):
cd src/lib
libs.bat
Option 2 - Any Operating System:
pip install -r requirements.txt
2. Run the Program
python main.py
3. Windows Installation Notes
Installing into C:\File Programs\Passwords Manager can require elevated permissions
If you run the installer over an older version, it will migrate supported data files automatically before reinstalling
The application keeps backward compatibility with older Windows layouts by searching current and legacy data paths
Structure of passwords.json
Passwords are saved in a dict named passwords
Items in the list have this syntax: {"address": "", "user": "", "password": ""}
⚠️ Passwords are now stored in encrypted format
Structure of passwords.csv
Lines are separated by Enter;
Columns are separated by ;;
The first line contains the column names, which are:
Address
Username
Password
Downloads
Package Managers
Windows (winget)
After the package is published in winget, install with:
Prefer to run from source code? See the Installation section above.
🤖 Automatic Build
This project uses GitHub Actions to automatically compile the program with each commit to the main branch. For more information about the build process, see GITHUB_ACTIONS.md.