A lightweight terminal-based password manager coded with Python using SQLCipher for SQLite database encryption.

Overview

password-manager

A lightweight terminal-based password manager coded with Python using SQLCipher for SQLite database encryption.

Screenshot

screenshot

Pre-requisites:

Python 3.9.2

Building

Install virtualenv

pip3 install virtualenv

Create virtual environment

virtualenv env

Activate virtual environment

source env/bin/activate

Install requirements

pip3 install -r requirements.txt

Generate binary

pyinstaller --onefile --paths=/env/Lib/site-packages password-manager.py

Running

dist/password-manager

Usage

At first run, the program will request a password creation for managing the password database. This password must satisfy certain requirements and be entered twice. THIS PASSWORD CANNOT BE RECOVERED WITHOUT RESETTING THE DATABASE.

When the password is created, two files should have been created. One stores the password salt (5f4dcc3b5aa765d61d8327deb882cf99) and the other file (48cccca3bab2ad18832233ee8dff1b0b.db) stores the password encrypted database itself. IF THESE FILES ARE DELETED, ALL STORED DATA WILL BE LOST. The user can upload these files, along with the binary, in a cloud service, although this is highly discouraged. To achieve the most security, all data must be kept offline.

When the user is logged in, the following options are available:

--------------------------------
Please input the desired option:

(6) - List registered passwords
(5) - Register a new password record
(4) - Update a password record
(3) - Delete a password record
(2) - Check password security
(1) - Generate secure password
(0) - Exit
--------------------------------

Option 6 will print all registered passwords in the database, including their identification name, the username (if applicable) the password itself, the data of creation and the data of the last update.

Option 5 will request the user data for a new input in the database. The field "Username" is optional. The data of creation is generated automatically.

Option 4 enables the user to update a database entry by its identification name.

Option 3 enables the user to delete a database entry by its identification name.

Option 2 analyzes a password (string) entered by the user and outputs Shannon entropy, maximum possible Shannon entropy and analyzes password safety guidelines in general.

Option 1 generates a secure password given an input length by the user and a charset.

Option 0 exits the program.

You might also like...
Bear-Shell is a shell based in the terminal or command prompt.
Bear-Shell is a shell based in the terminal or command prompt.

Bear-Shell is a shell based in the terminal or command prompt. You can navigate files, run python files, create files via the BearUtils text editor, and a lot more coming up!

Bear-Shell is a shell based in the terminal or command prompt.
Bear-Shell is a shell based in the terminal or command prompt.

Bear-Shell is a shell based in the terminal or command prompt. You can navigate files, run python files, create files via the BearUtils text editor, and a lot more coming up!

Terminal-based keyboard testing
Terminal-based keyboard testing

kbdtest kbdtest is a simple Python program that tests keyboard input using an interactive, terminal-based, visual keyboard display. It was originally

jenkins-tui is a terminal based user interface for Jenkins.

jenkins-tui 📦 jenkins-tui is a terminal based user interface for Jenkins. 🚧 ⚠️ This app is a prototype and in very early stages of development. Ther

term2048 is a terminal-based version of 2048.
term2048 is a terminal-based version of 2048.

term2048 is a terminal-based version of 2048.

A terminal utility to sort image files based on their characteristics.

About A terminal utility to sort image files based on their characteristics. Motivation This program was developed after I've realized that I had too

A very simple and lightweight ToDo app using python that can be  used from the command line
A very simple and lightweight ToDo app using python that can be used from the command line

A very simple and lightweight ToDo app using python that can be used from the command line

A CLI password generator

passgen - A CLI password generator Usage python3 main.py arguments Arguments Argument Short Description --length -l The length of the password to ge

A CLI Spigot plugin manager that adheres to Unix conventions and Python best practices.

Spud A cross-platform, Spigot plugin manager that adheres to the Unix philosophy and Python best practices. Some focuses of the project are: Easy and

Comments
  • Option to change database password

    Option to change database password

    Is your feature request related to a problem? Please describe. The user can't change the database password once it is created after it is executed for the first time.

    Describe the solution you'd like An option to change password while the program is being executed.

    enhancement 
    opened by araujo88 0
  • Fail to detect the existence of file '48cccca3bab2ad18832233ee8dff1b0b.db' when not executed from root folder

    Fail to detect the existence of file '48cccca3bab2ad18832233ee8dff1b0b.db' when not executed from root folder

    Describe the bug The program fails to detect the encrypted database file, when it already exists, when it is not executed from its root folder.

    To Reproduce ./password-manager/dist/password-manager

    Expected behavior Output: Enter the database password:

    Observed behavior Output: Please create a password:

    Desktop (please complete the following information):

    • OS: Ubuntu 18.04
    opened by araujo88 0
Releases(v1.0.5)
Owner
Leonardo de Araujo
Back-end developer. Civil engineer. MSc. in computational fluid dynamics.
Leonardo de Araujo
Password manager for the CLI simps.

CLI Password Manager Password manager for the CLI simps. Free software: MIT license

null 1 Dec 30, 2021
🌈 Lightweight Python package that makes it easy and fast to print terminal messages in colors. 🌈

?? Colorist for Python ?? Lightweight Python package that makes it easy and fast to print terminal messages in colors. Prerequisites Python 3.9 or hig

Jakob Bagterp 1 Feb 5, 2022
Gamestonk Terminal is an awesome stock and crypto market terminal

Gamestonk Terminal is an awesome stock and crypto market terminal. A FOSS alternative to Bloomberg Terminal.

Gamestonk Terminal 18.6k Jan 3, 2023
Python CLI utility and library for manipulating SQLite databases

sqlite-utils Python CLI utility and library for manipulating SQLite databases. Some feature highlights Pipe JSON (or CSV or TSV) directly into a new S

Simon Willison 1.1k Jan 4, 2023
CLI for SQLite Databases with auto-completion and syntax highlighting

litecli Docs A command-line client for SQLite databases that has auto-completion and syntax highlighting. Installation If you already know how to inst

dbcli 1.8k Dec 31, 2022
Fast as FUCK nvim completion. SQLite, concurrent scheduler, hundreds of hours of optimization.

Fast as FUCK nvim completion. SQLite, concurrent scheduler, hundreds of hours of optimization.

i love my dog 2.8k Jan 5, 2023
CLabel is a terminal-based cluster labeling tool that allows you to explore text data interactively and label clusters based on reviewing that data.

CLabel is a terminal-based cluster labeling tool that allows you to explore text data interactively and label clusters based on reviewing that

Peter Baumgartner 29 Aug 9, 2022
A CLI based task manager tool which helps you track your daily task and activity.

CLI based task manager tool This is the simple CLI tool can be helpful in increasing your productivity. More like your todolist. It uses Postgresql as

ritik 1 Jan 19, 2022
A simple terminal-based localhost chat application written in python

Chat House A simple terminal-based localhost chat application written in python How to Use? Clone the repo git clone https://github.com/heksadecimal/c

Heks 10 Nov 9, 2021
A python-based terminal application that displays current cryptocurrency prices

CryptoAssetPrices A python-based terminal application that displays current cryptocurrency prices. Covered Cryptocurrencies Bitcoin (BTC) Ethereum (ET

null 3 Apr 21, 2022