This is a simple offline password manager application built using Python and the Tkinter library. The app allows users to securely store, view, update, generate random passwords and delete passwords for various services. Passwords are encrypted using the Fernet symmetric encryption algorithm, and a password history is maintained for each entry. This app is an enhancement on ALL the password manager apps out there because it completely offline and nothing is sent/stored on the cloud.
This app was built because my mom always keeps forgetting her passwords and always needs help resetting them 😊.
- Python 3.x
- Tkinter library
- cryptography library
- sqlite3 library
- pyperclip library
-
Clone the repository or download the script.
-
Install the required dependencies:
pip install -r requirements.txt
-
Run the script
python3 password-manager.py
OR
-
Run the bash script - ON Linux systems or MacOS
chmod +x run_app.sh ./run_app.sh
OR
-
Run the bat file - ON Windows
run_app.bat
- Add Password: Store passwords for different services securely.
- View Passwords: Display a list of stored passwords with encrypted representations.
- View Password: View the decrypted password for a selected service.
- Delete Password: Remove a stored password after confirmation.
- Generate Password: Create a random password with specified length and complexity.
- Password History: View the history of password changes for a selected service.
- Update Password: Change the password for a selected service.
- Launch the application.
- Use the provided buttons to manage passwords.
- For each stored password, you can view, update, or delete it.
- Generate strong and random passwords using the "Generate Password" button.
- Passwords are stored in an encrypted format using the Fernet encryption algorithm.
- Password changes are tracked in a separate history database.
To create a standalone executable (.exe) file using PyInstaller, follow these steps:
- Install PyInstaller
cd FalconHacksV2
- Run PyInstaller
pyinstaller --onefile --noconsole password-manager.py
The executable file will be generated in the dist directory.
Navigate to the dist directory and run the generated executable.
cd dist
password-manager.exe
NOTE: This is on a Windows machine.
- Install Required Dependencies:
Ensure that you have the necessary dependencies installed on your development machine:
pip install -r requirements.txt
- Package the App
Install py2app, a tool for building standalone Mac applications:
pip install py2app
-
Navigate to the directory containing your
password-manager.py
-
Run the following command to create a standalone .app bundle:
py2applet --make-setup password-manager.py
python setup.py py2app
This will generate a dist directory containing the .app bundle.
- Create a DMG File:
Installcreate-dmg
, a tool for creating DMG files:
npm install -g create-dmg
- Navigate to the
dist
directory:
cd dist
- Run the following command to create a DMG file:
create-dmg 'Offline Password Manager App.app' --overwrite --dmg-title='Offline Password Manager App'
Adjust the --dmg-title
parameter according to your application's name.
-
After the command completes, you will find the generated DMG file in the
dist
directory. -
Test the Application:
- Mount the DMG file and drag the application to the Applications folder.
- Launch the application from the Applications folder to ensure it works correctly.
- Distribute the DMG File
- You can now distribute the DMG file to users. They can download the DMG file, mount it, and then drag the application to their Applications folder.
Contributions are welcome! Please fork the repository and submit a pull request with your changes.
This project is licensed under the MIT License - see the LICENSE file for details.
Replace "yourusername" with your actual GitHub username or the organization name where you host the repository.
Feel free to customize this template based on your project's specific details and requirements.
Add more sections if needed, such as "Troubleshooting," "Testing," or "Acknowledgments."
The goal is to provide clear and comprehensive information for users and potential contributors.