Skip to main content

Hashed-based password manager program/library.

Project description

hashedpass

Decentralized, storage less hash-based password management standard and program.

Version: 1.0.2 To Do:

  • Implement Argon2 parameter strings.

hashedpass is a program and library written in Python which seeks to standardize storage less, decentralized password management based off of hashing. In addition to hashedpass being a program/library, it also exists as a standard, written as a document; it can be found here.

hashedpass is based off of SHA512 and Argon2. The master password, along with other parameters such as service/website and email/username, are first hashed with SHA512, then are fed into an expensive Argon2 hashing algorithm, with consistent salts and parameters. A lot more information regarding the specifics can be found in the standard, in the docs/ folder.

The hope is that hashedpass can be used standalone to prevent ever losing a KeepassXC database, as all one requires is their common master password and the corresponding information for the account that the generated password is intended to go towards--if you remember the three parameters, you will always have your passwords. Alternatively, the more realistic approach is to use hashedpass in conjunction with something like KeepassXC: derive your passwords from hashedpass, store them into your KeepassXC database and use that primarily, using hashedpass as a backup if your KeepassXC database is ever lost.

hashedpass can be used as a program with command-line arguments, though this is not encouraged: it requires the inclusion of your master password as a command-line argument, which would likely make its way into a shell history--a large security blunder. To explain the various arguments that hashedpass can take, we can take inspiration from its help menu, which can be accessed by issuing -h/--help as a command-line parameter:

hashedpass.py - Make passwords via hashes with a master password, a decentralized password manager.
USAGE:

To use hashedpass in interactive mode (it gives prompts, etc), supply no arguments.

Using hashedpass with terminal arguments requires supplying the master password, service/website,
and username/email/id.

-m, --master-password  |        Supply the master password
-p, --password         |


-s, --service          |        Supply the website/service name
-w, --website          |        


-i, --id               |        Supply the id, username, or email.
-u, --username         |
-e, --email            |

If one wants to use hashedpass as an interactive application, which will receive input from the terminal and calculate the desired passwords in a convenient fashion, with more features, then provide no command-line arguments to the program to achieve this.

As an interactive application, after inputting a master password for all subsequent password derivations, the program will exit on a timeout of 60 seconds if there is no activity, clearing and resetting the terminal. This will hopefully help to prevent accidental seeing of the generated passwords by others.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

hashedpass-1.0.2.tar.gz (10.5 kB view hashes)

Uploaded Source

Built Distribution

hashedpass-1.0.2-py3-none-any.whl (10.0 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page