Skip to content

anscian/password-manager

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Password Manager based on python

This is a simple tool to manage the passwords while also keeping them safe.

We have a main interaction file /manager.py which have interfaces for generation, storage and retrieval of password data.

It is supported by python module /support in the same directory. It also generates a simple CLI to toy with the database.

  • /encrypt_decrypt.py : For locking and unlocking passwords database
  • /dbManage.py : For store and fetch operations on database

In /data directory the key ./key.secret and the database ./passwords.sqlite3 are stored. For testing, other such pair is kept in /test_utils directory.

The /manager.py is designed in such a way that user can continuously store multiple data entries or continuously do searches. Also, if user wants an interaction with alternative store, fetch and generate, a descent CLI will be there. Also, whatsoever be the state of database before, after interaction with /manager.py is done, we get an encrypted database.

The usage helps for each of the following can be seen as follows:-

  • First go to project root directory : cd $PROJECT_ROOT
  • /manager.py : python3 ./manager.py --help
  • /support/encrypt_decrypt.py : python3 -m support.encrypt_decrypt --help
  • /support/dbManage.py : python3 -m support.dbManage --help

The required libraries are given in requirements.txt. Its recommended to first create a python virtual environment. For this execute

python3 -m venv .my_env

and activate it

source ./.my_env/bin/activate

Now, to install the required packages, while in project root, execute

pip3 install -r ./requirements.txt

Limitations:

Well as it's just a primary and simple system, there is very less protection of data though successful storage and retrieval

  • The key is to be kept safe by the user. Access to keyfile will automatically allow someone to decrypt it if encryption is known.
  • Damaging the encryted database file by modifying it may lead to permanent loss of data and same holds if keyfile is modified before decrypting.

Improvements:

  • The security concerns listed in the limitations are some of the most vital improvements needed
  • A GUI for this system would make it much more user friendly

About

Simple tool to manage passwords in a SQLite database

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages