This Password Manager uses encryption, compression, and other techniques to securely manage your passwords. Below is an overview of how the program works:
- Encryption: Encrypts your passwords using the
cryptographymodule. - Compression: Stores encrypted passwords in a
.7zfile using thepy7zrmodule. - Clipboard Integration: Copies passwords to your clipboard using the
pyperclipmodule. - Random Password Generation: Generates strong random passwords using the
secretsmodule.
-
Startup:
- On the first run, the program will ask you to set a password for the manager. You can either set your own password or allow the program to generate a random one using the
secretsmodule. - If this is not your first time using the program, it will ask for the password you previously set.
- On the first run, the program will ask you to set a password for the manager. You can either set your own password or allow the program to generate a random one using the
-
Data Storage:
- A
pandasDataFrame is created with three columns:platform,username, andpass. - The DataFrame is converted to a
.csvformat and stored in a buffer using theiomodule. This avoids writing sensitive data to disk, reducing the risk of malware reading it.
- A
-
Encryption and Compression:
- The
.csvfile in the buffer is encrypted using thecryptographymodule. - Both the encrypted file and the encryption key are stored in a
.7zarchive, which is password-protected using the password set earlier. Thepy7zrmodule is used for this process.
- The
-
File Reading:
- The program can read the
.7zfile using theSevenZipFileclass from thepy7zrmodule. Since the file is returned as a dictionary, the program separates the password and the key. - The encrypted file is then decrypted using the stored key.
- The program can read the
-
User Interaction:
- The program provides four options:
- Add a Password: Allows you to add a new password. You will be prompted for the platform and username. The new data is combined with the existing data using
.concat, and the updated DataFrame is displayed. - Add from File: Allows you to add a new password from .csv, .xls, .xlsx files.
- Access Password: Allows you to search for a specific platform and displays the corresponding passwords. You can select an index to copy the password to your clipboard.
- Remove a Password: Similar to accessing passwords, but instead of copying, you can select and delete entries by their index. Multiple indexes can be deleted at once by inputting a list. The program uses
.drop()to remove the selected rows. - Delete Manager: Allows you to delete the Manager or the .7z file that contains your password.
- Exit the Program:After any changes (addition, access, or removal), the program will overwrite the existing
.7zfile, using the same principles as when creating a new password manager. The encryption key changes each time the file is overwritten, enhancing security.
- Add a Password: Allows you to add a new password. You will be prompted for the platform and username. The new data is combined with the existing data using
- The program provides four options:
-
Security Features
- The use of in-memory operations (RAM) ensures that sensitive data isn't exposed on disk.
- Each time the data is modified and saved, a new encryption key is generated, making the data more secure against repeated attacks.