Secure Password Vault

Introduction

Everyone has many password. So many that they need to write them down because they can't remember them all. It would be nice to create a simple encrypted file/database that could contain them and keep them safe.

There are many password managers/vaults available for free or a small fee, but I want to create my own (just because).

I do not need web browser plugins, etc. I just want a simple GUI interface, simple database, and only one password to remember. (One ring to rule them all.)

The Data Store

You may want to use one of the existing memory/file databases. There are several available.

DBM is an example of one:

GNU dmb (gdbm) Documentation
dbm — Interfaces to Unix "databases"
Python – Database Manager (dbm) package
Python Data Persistence - dbm Package

code example from the web

import dbm with dbm.open('my_store', 'c') as db: db['key'] = 'value' print(db.keys()) # ['key'] print(db['key']) # 'value' print('key' in db) # True

Another possibility is SQLite.

What about JSON?

Question: Do any of the existing databases already have encryption capabilities?

GUI

For a GUI I suggest PySimpleGUI. (There are other Python modules available.)

Project #1

I suggest you first use a menu to develop/test the methods and database/vault. This allows you to quickly define/change the interface. After it is working replace the menu with a GUI.

The requirements are

My First Vision for a Design

  1. read a password vault into memory
  2. decrypt the vault
  3. execute user commands
  4. encrypt the vault
  5. write the password vault to disk

How About

Their are primary names that will be accessed a lot (e.g. amazon.com). How about (2 to 6) buttons that will automatically search for a specific entry and display it. This way the user does not need to type in their favorites.

My Password Vault Help

My Password Vault Design