A secure password manager that allows you to store and retrieve passwords.
- Strongly encrypt passwords, usernames, and site information to ensure maximum security
- Retrieve passwords quickly
To install PassX, follow these steps:
- Clone the repository:
git clone https://github.com/yourusername/passx.git
- Navigate to the project directory:
cd passx
- Install the required packages:
pip install -r requirements.txt
- To use PassX, run the following command:
python3 passx.py
-
Enter your unique KEY
-
Choose from the following points:
———————————————————————————————
—————————————PassX—————————————
1: Add new password
2: Get password
3: Remove Password
4: List all
q: Quit
———————————————————————————————
What you want:
When password, username, and site informations are stored, they are encrypted using a unique KEY.
KEY = 'bence'
site: neptun.pte.hu --> b'\x0c\x00\x1e\x17\x10\x0cK\x1e\x17\x00L\r\x1b'
username: ZTBFRU --> b'81,%77'
password: 12345678 --> b'SW]WPTRV'
KEY = 'timea'
site: neptun.pte.hu --> b'\x1a\x0c\x1d\x11\x14\x1aG\x1d\x11\x04Z\x01\x18'
username: ZTBFRU --> b'.=/#3!'
password: 12345678 --> b'E[^QTB^U'
It is clear that with a different KEY the encryption will be different.
This encryption ensures that even if someone gains access to the interface, they cannot decrypt the passwords without the key.
We have to enter the site
and username
to get the password.
BUT everything is stored encrypted in passwords.db
so, we have to encrypt the user input first:
encrypted_site = encrypt(site, KEY)
encrypted_username = encrypt(username, KEY)
then find the passwords where site
and unsername
is equal to the encrypted form
encrypted_password = DatabaseManager('passwords.db').get_password(encrypted_site, encrypted_username)
finally decrypt it to get the real password
password = decrypt(encrypted_password, KEY)