A secure and user-friendly password management application built with Python and Flet.
For a detailed project description, please visit my blog: Pi3's Notes
- Secure user authentication
- Password storage with multiple encryption algorithms (AES-256, ChaCha20, XChaCha20, SM4-ECB)
- Add, view, edit, and delete password entries
- Search functionality for quick access to stored passwords
- Import and export password data in various formats (JSON, CSV, TXT)
- Random strong password generator
- Dark mode support
- Python 3.x
- Flet (GUI framework)
- MySQL (database)
- Cryptodome (encryption library)
- pysm4 (SM4 encryption)
-
Clone the repository:
git clone https://github.com/Pi3-l22/Password_Manager.git
-
Install required dependencies:
pip install -r requirements.txt
-
Set up MySQL database and update connection details in
database_op.py
:HOST_NAME = 'your_remote_database_ip' USER_NAME = 'your_remote_database_username' USER_PASSWORD = 'your_remote_database_password' DB_NAME = 'password_manager'
-
Run the application:
python main.py
-
Run the Web application:
python web/main.py
After running the program, access the Web application by visiting http://IP:8000
in your browser.
- (Optional) Package as a desktop application:
flet pack main.py --add-data "asset;asset" --icon "D:\Desktop\PassWordManager\asset\logo.ico" --product-name "PassManager" --product-version "1.0" --file-version "1.0" --file-description "A simple and safe password manager" --copyright "By Pi3"
- Launch the application, create a new user account or log in with existing credentials.
- Use the intuitive interface to manage your passwords:
- Add new password entries
- View and edit existing entries
- Delete unwanted entries
- Search for specific passwords
- Import or export password data as needed.
- Use the random password generator to create strong, unique passwords.
- User passwords are hashed using SHA3-256 before storage.
- Stored passwords are encrypted using user-selected AES-256, ChaCha20, XChaCha20, or SM4-ECB algorithms.
- Encryption keys are derived using PBKDF2 with 10,000 iterations for added security.
This project is licensed under the MIT License - see the MIT LICENSE file for details.
- Flet for the GUI framework
- Cryptodome for encryption algorithms
- pysm4 for SM4 encryption support