This Password Manager project is designed to provide a secure solution for storing and managing passwords. The application features user authentication, password encryption, and integration with Firebase for data storage. Users can sign up, log in, store, display, and remove passwords through a command-line interface.
The project leverages Python and various utility modules to ensure the security and efficiency of password management tasks. This repository aims to deliver a practical example of secure data handling and encryption in Python, suitable for both educational purposes and practical use.
User Information is sent as encrypted Vault to the database, and is decrypted after being acquired from the database.
The Vault is secured using AES-128 (CBC mode) from the Fernet module. The Vault key is generated by appending Master username, Master password and hashing them several times.
vaultKey = Hash(Hash....Hash(masterUsername|masterPassword))....)
"assertHash" is generated by appending Master password, Vault key and hashing them several times. "assertHash" is stored in the database, as the name of each respective Vault.
assertHash = Hash(Hash....Hash(vaultKey|masterPassword))....)
Authentication of users is done by comparing "assertHash" stored in the database and the one generated right during the authentication process.
assert assertHash == Hash(Hash....Hash(VaultKey|MasterPassword))....)
Builds the project by installs all necessary Python modules using pip to ensure all dependencies are met. Reads Firebase credentials to configure and integrate with the Firestore database.
Runs the main script.