NOTICE:
I also plan to turn Password Manager into a GUI Application. I will continue to improve
ths library and CLI program as well. Make sure to check out the Python edition as well
as it is the main program.
πΈ Please consider donating on Paypal to keep this project alive.
Links: Password Manager Python, Password Manager C# CLI and Library, Password Manager C# GUI
Muragala is a password manager designed to make managing passwords easy and secure. My goal is to make it a secure and reliable password manager available in the public domain for everyone to use. Privacy and security is for everyone, this is the core value behind this project. It uses Fernet encryption to encrypt passwords and store them on a database. It uses two factor authentication with a password and randomly generated salt to encrypt the database. The application is built to be as simple as possible to make sure it's secure. On the other hand, this project is an experiment to see how to make a better security application.
Please note that I am still learning and this project has also been a way to expand my knowledge. Any suggestions, issues and ideas are more than welcome. On the other hand, this application is still in its alpha phase. Therefore please don't use it solely for personal usage. It might have severe bugs and issues regarding functionality and security.
- Cryptography - This module is used for all the cryptographic work. This is an important library.
Go to the Releases section. Pick a prefered release and download it. Unpack the zip file. Optionally, you can hash the password-manager-CSharpCLI.exe file and password-manager-CSharpLibrary.dll file on a service and compare it with the provided hashes to validate. Make sure that the help.json file is in the right place as well (In the same folder). If you don't have Visual Studio installed, you can install Visual Studio. Once done, install the Fernet version 0.1.7.
On opening the application for the first time, the application will create the database and preference file. This includes setting up the salt, which requires your password. As soon as you open up for the first time, it will ask for a password. Provide a prefered password. Make sure to remember this as it is what keeps the data protected. Once done, you will be loaded into the application. Now you can continue to use it. Optionally, you can also backup the preference.en file created in the same directory in case of an emergency.
NOTE: The salt or password alone cannot be used to recover the data in the database. Make sure to preserve both. Also note that the application is still in the Alpha phase.
The application has several useful commands built in. These allow for adding, editing, deleting and also viewing passwords to and from the database.
- β help - This command will list out help information for the application.
help
[List out all the commands and their details]help <command>
[This will list out information for the specified command]
- β exit - This command will exit the application.
- β about - This command will show the about information of the application.
- π version - This command will show the version number of the application that you're using.
- β add - This command will add a new profile to the database.
add
[Loads the add command with auto-generated password of default size and character set]add <size> <arguements>
[Loads the add command with auto-generated password of size provided and character set provided]add -m
[Loads the add command with a manual password]arguement set - -u(Include uppercase) -n(Include numbers) -c(Include special characters)
ex: 'add 13 -c -u' will auto-generate a password 13 characters long with only lowercase, uppercase and special characters
- βοΈ edit - This command will edit an existing profile in the database.
edit <platform> <username>
[Loads the edit command with auto-generated password of default size and character set for the provided platform and username]edit <platform> <username> <size> <arguements>
[Loads the edit command with auto-generated password of size provided and character set provided]edit <platform> <username> -m
[Loads the edit command with a manual password]arguement set - -u(Include uppercase) -n(Include numbers) -c(Include special characters)
ex: 'edit Instagram Frank 13 -c -u' will auto-generate a password 13 characters long with only lowercase, uppercase and special characters
- ποΈ delete - This command will delete an existing profile in the database.
delete <platform> <username>
[Loads the delete command for the platform and username]
- π show - This command will show the password of an existing profile in the database.
show <platform> <username>
[Loads the show command for the platform and username]
- ποΈ copy - This command will copy the password of an existing profile in the database. (NOTE: Only work in the Python edition)
copy <platform> <username>
[Loads the copy command for the platform and username]
- π platforms - This command will list out the platforms in the database.
platforms
[Will list all the platforms listed in the database]platforms <keyword>
[Will list all the platforms listed in the database that match the keyword]platforms <keyword> <row>
[Will list all the platforms listed in the database that match the keyword and will list them in the specified row count]
- π©βπ¦° username - This command will list out the usernames in the database.
username
[Will list all the usernames listed in the database]username <keyword>
[Will list all the usernames listed in the database that match the keyword]username <keyword> <platform>
[Will list all the usernames listed in the database that match the keyword and platform name]username -a <platform>
[Will list all the usernames listed in the database that match only the platform name]username <keyword or -a> <platform> <rows>
[Will list all the usernames listed in the database that match the keyword (or all if -a is provided) and platform name and will list them in the specified row count]
The database is a basic text file and data is stored to it in JSON format. However, each item is stored as an encrypted string, encrypted using the Fernet encryption.
{"Platform 01" : [{"User 01" : ["Password", "Modified Date"]}, ...], ...}
Each of these parameters are encrypted individually. Fernet encryption requires a salt and password to decrypt. Thus, we can modify the password to store different items in different formats.
Based on Password Manager (Python) version 2.1.1 Alpha NOTE: This is the initial release
Password Manager CLI Application Version 1.0.0 Alpha
MD5:
0de50a1fd43d7a2164942f164bf4d880
SHA1:
028eb7f76518b3cb2d4fb853116cf688d45569e1
SHA256:
c4a4fede4fe527832ab0f7656fa4678145737ebb6dc49b43e1218df17629c3d1
Password Manager Library Version 1.0.0 Alpha
MD5:
224029b61d35b2762827eb6bc771c018
SHA1:
ead87c0a40a08443bac62b5d32526f0870d23f4e
SHA256:
4bce6b8ad1d9c547e8be8e9beb649fea9f89660a33987ffa8fd76f31ede280b3
- Support for Encryption
- Add, Edit, Delete functionality
- Viewing and copying functionality
- Help and About sections
- Setting up a passcode
- Add way to get a new line on command line by pressing enter
Based on Password Manager (Python) version 2.1.1 Alpha
Password Manager CLI Application
MD5:
53b733d0ff64350a3d55ca30b36f0aba
SHA1:
8aac15c1c8790b9f9d10b59fe892cd89ba36ec5b
SHA256:
ebb6cf5a0d6f369a3cd50caeb21edd81e4c00d89ef43af8e8d593573c4af2abd
Password Manager Library
MD5:
6d8a81ead29fb3c2234821879b2e6c7e
SHA1:
a2e9f249f465c84dbc1774e338e87cc960a5bd96
SHA256:
89e8a5f2bccb49219f74f70105e77bcb30cc0573528d06776411701388cd29ed
- Fixed the location issue in library
- Upgraded the library to v1.0.1 form CLI Application
- Added separate location for data files
- Suggest new features
π NOTE: Throughout the application, Passcode refers to the root password set for the password manager and Password refers to the password of the application.
Β© 2022 Asanka Sovis