Skip to content

Latest commit

 

History

History
142 lines (113 loc) · 4.85 KB

README.md

File metadata and controls

142 lines (113 loc) · 4.85 KB

Offline Password Manager App

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 😊.

Here's some screenshots of the app:
screenshot
screenshot
screenshot

Prerequisites

  • Python 3.x
  • Tkinter library
  • cryptography library
  • sqlite3 library
  • pyperclip library

Installation

  1. Clone the repository or download the script.

  2. Install the required dependencies:

    pip install -r requirements.txt
  3. Run the script

    python3 password-manager.py

    OR

  4. Run the bash script - ON Linux systems or MacOS

    chmod +x run_app.sh
    ./run_app.sh

    OR

  5. Run the bat file - ON Windows

    run_app.bat

Features

  • 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.

Usage

  1. Launch the application.
  2. Use the provided buttons to manage passwords.
  3. For each stored password, you can view, update, or delete it.
  4. Generate strong and random passwords using the "Generate Password" button.

Security

  • Passwords are stored in an encrypted format using the Fernet encryption algorithm.
  • Password changes are tracked in a separate history database.

OPTIONAL

Create Standalone Executable (Windows)

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.

Test the executable

Navigate to the dist directory and run the generated executable.

cd dist
password-manager.exe

NOTE: This is on a Windows machine.

Create a .app/dmg file for MacOS

  1. Install Required Dependencies:
    Ensure that you have the necessary dependencies installed on your development machine:
pip install -r requirements.txt
  1. Package the App
    Install py2app, a tool for building standalone Mac applications:
pip install py2app
  1. Navigate to the directory containing your password-manager.py

  2. 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.

  1. Create a DMG File:
    Install create-dmg, a tool for creating DMG files:
npm install -g create-dmg
  1. Navigate to the dist directory:
cd dist
  1. 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.

  1. After the command completes, you will find the generated DMG file in the dist directory.

  2. 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.
  1. 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.

Contributing

Contributions are welcome! Please fork the repository and submit a pull request with your changes.

License

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.