An open API service indexing awesome lists of open source software.

https://github.com/fefe33/passwordmanager

a terminal based password manager with simple encryption
https://github.com/fefe33/passwordmanager

Last synced: about 2 months ago
JSON representation

a terminal based password manager with simple encryption

Awesome Lists containing this project

README

        

# PasswordManager
a terminal based password manager with encryption.

## usage
the app is used in a manner much similar to the metasploit-framework. upon launch the user is thrown into a shell-like prompt in which different unix-like commands may be typed.

it requires users create user accounts under which records may be saved, modified, etc. commands differ based on whether a user is logged in or not. password related tables include fields for storing the username, password and website.

the database can be configured via the config file (%filepath%/cfg/config). by default the database is set to be in the same directory as the path to the file (referenced in the cfg file by path=%file%). the databases name by default is default.db (as seen in the config file). the program will always look for an adjacent directory named 'cfg', and for a file inside of it named 'config'. the program will throw an error and not work if this file is not present

## ciphers/security
the program uses a 64 byte (512 bit) feistel cipher with rotating intermediary swap operations. it iterates over itself 16 times, and uses cyptographically related hash values as keys with each iteration. a special syntax may be used to specify swapping operations (specified in the class definitions). no content, decryption keys, or passwords are stored directly as plaintext and all encrypted values are salted before being stored.

while this all probably sounds good, it does not imply it is a secure or optimal implementation of the algorithm, or that it should actually be used for security.

## syntax
many commands allow for both prompt based input or argument based input. indexes may also be specified in certain contexts.

## when logged out



  • new -- shows user set of prompts to set up a new master user account


  • update <index> <field or field index> **if field is not password <value> -- update an existing master user or master user's password.


  • rm <user or uid>-- removes a specific user


  • login <username or index>>-- logs in as specific user. may also be used followed by a name or index (relative to the output of the users command)


  • users -- lists all created users


  • whoami -- will always return "not logged in" in this context

## when logged in



  • logout -- logs out the master user that is currently logged in


  • whoami-- returns the name of the current master user


  • ls -- when provided with no arguments lists all records. when run with -u will filter by username, and -s to filter by site (regex not supported)


  • update <index> <field>=<value> -- updates a username, site, or password of a specific record by index



## global commands


  • backup <path> -- makes backup copy of current database at path <path>


  • clear or clc -- clears screen


  • exit -- in most contexts, one should be able to exit by simply typing exit.


  • help -- brings up help menu