Password Manager stores the username, the corresponding password and the sites for which the username and password are used in a database. The Password Items in this database can be accessed by using the master password. The master password is a string that can be used to fetch the passwords. This is helpful because users have to just remember one master password that will let them access all their other passwords, rather than remembering several passwords.
The data in the database are encrypted using Symmetric Encryption so that people can't access the password. Even if they do, they won't be able to understand as the data would be scrambled. This way, the passwords are also safe and cannot be accessed for malicious purposes.
It supports all the CRUD(Create, Read, Update and Delete) operations. In other words, users can Add new Password Items, they can Retrieve the Password Items, they can Update the passwords, and they can also Delete Password Items.
If the user forgets the Master Password, there is NO way of using the database again. The user will have to create a new account.
This Password Manager also gives users an option to generate Random Passwords. The user can specify the length of the Randomly Generated Password and the Random Password will be generated and can be used. The Randomly Generated Password contains characters from the following character set:
If the binary is run without any arguments, it implies that the user wants to create a new account.
If the binary is run with 2 or more arguments, the 1st argument is the username and the 2nd argument is the master password.
Note: I used some functions for the database queries from my other project. I also referred to some websites when I ran into bugs.