Video Demo: View on Youtube
This is my personnal project for CS50.
This web app allows you to manage your online accounts logins and passwords in a reasonably secure way. It comes with AES encryption to protect your sensitive data.
The Back-end side is written in Python, using the Flask framework.
All the data is stored in SQLite databases:
- A database storing all users, with their username, their master password hash and their account settings.
- For each user, a database is created to store his/her personnal data. All the sensitive information is encrypted on-the-fly with AES prior to be inserted to the database.
The Front-end side uses some JavaScript:
- To randomly generate passwords according to the user's preferences (character classes, length).
- To show/hide credentials and to copy them to the clipboard.
The CSS makes the user interface responsive so that you can use it on any device.
Herebelow are listed the main features:
- Password Generator: dont't blow your mind anymore by trying to find strong passwords; let the app generate them for you, following the rules you define (length, character range,...).
- Summary: on the home page, you will have a summary showing you if there are any weak or duplicate passwords in your database, so that you can change them whenever you want.
- Password Strength Calculator: for every password you store within the app, it will let you know how strong this password is by calculating its entropy; all the weak and duplicates passwords will be brought to your attention so that you can change them when needed.
- Secure Notes: in addition to storing your login credentials, the app also allows you to add some personnal notes to each entry.
Works with Python 3.6+
The following libraries and frameworks are needed for the app to work properly:
You will also need to enable Javascript
in your web browser.
You will eventually have to create a user_dbs
directory prior to run for the very first time.
Once all of the above is installed, you can run the app locally by executing the following:
$ export FLASK_APP=application
$ flask run
> set FLASK_APP=application
> flask run
> $env:FLASK_APP = "application"
> flask run
If you are facing any issue or notice any bug, feel free to contact me or to send a Pull Request on GitHub.