master


Namemaster JSON
Version 0.2.5 PyPI version JSON
download
home_pagehttps://github.com/jpedro/master
SummaryDeterministic password generator
upload_time2024-09-05 21:00:51
maintainerNone
docs_urlNone
authorjpedro
requires_python>=3
licenseMIT
keywords deterministic password generator
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # Master

[![Deploy pages](https://github.com/jpedro/master/actions/workflows/pages.yaml/badge.svg)](https://github.com/jpedro/master/actions/workflows/pages.yaml)

Generates deterministic passwords.


<!-- ![Pictutre](https://raw.githubusercontent.com/jpedro/master/master/docs/strong.jpg) -->
<!-- ![Strong password](https://raw.githubusercontent.com/jpedro/master/master/docs/blink.gif) -->

This is inspired by [spectre.app](https://spectre.app/) but simpler.
This uses a sha256 hashed combination of
`username + password + service + version` (`version` is now locked to
`0`) to generate the same password, over and over again, thus
eliminating the need to store, maintain and back up other generated
passwords.

[jpedro.github.io/master](https://jpedro.github.io/master/) has the
browser experience.

The used service name list is kept under the file
`~/.config/master/list.txt` (or whatever `MASTER_LIST` points to)
*purely for autocompletion*, which will be added later.

Eventually, the idea is to create a simple browser extension that uses
the URL domain name as the service.


## Install

    pip install master

<!--
Yes, yes. The package is called `masterpass` but the binary is called
`master`. To be fixed after [#2582](https://github.com/pypi/support/issues/2582)
is resolved.
-->


## Usage

```
$ master --help

NAME
    master — Generates deterministic passwords for services

USAGE
    master NAME                 Gets the password for service NAME
    master -l, --list           Lists all stored services
    master -r, --remove NAME    Removes service NAME from the stored list
    master -v, --version        Shows the version
    master -h, --help           Shows this help

```


## Environment variables

| Name                | Default                       |
| ------------------- | ----------------------------- |
| `MASTER_LIST`       | `~/.config/master/list.txt`   |
| `MASTER_USERNAME`   | (None) [1]                    |
| `MASTER_PASSWORD`   | (None) [1]                    |
| `MASTER_SEPARATOR`  | `-`                           |
| `MASTER_LENGTH`     | `6`                           |
| `MASTER_CHUNKS`     | `6`                           |

Using these default settings, it will generate a password that's 41
characters long. 6 chunks of 6 character long with 5 separators in
between.

> *Note*
> [1] If you don't set the `MASTER_USERNAME` or the `MASTER_PASSWORD` you
> will be prompted for them.


## Todos

- [ ] Make the `MASTER_LIST` a directory to avoid git conflicts.
- [ ] Integrate the user name with Oauth2 providers.
      Maybe the `sub` after an authentication flow can be used instead
      of the flat username. Cons: the email provider can change for the
      same email address. Plus, not 100% sure if one wants to tie
      passwords to an email.
- [ ] Lock (close) the master page after 30 seconds of inactivity.

            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/jpedro/master",
    "name": "master",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3",
    "maintainer_email": null,
    "keywords": "deterministic password generator",
    "author": "jpedro",
    "author_email": "jpedro.barbosa@gmail.com",
    "download_url": "https://files.pythonhosted.org/packages/15/09/cac9d328ca3c2e0b7e868ef80d950fed7880b0f48168bfd2dc8786aa3965/master-0.2.5.tar.gz",
    "platform": null,
    "description": "# Master\n\n[![Deploy pages](https://github.com/jpedro/master/actions/workflows/pages.yaml/badge.svg)](https://github.com/jpedro/master/actions/workflows/pages.yaml)\n\nGenerates deterministic passwords.\n\n\n<!-- ![Pictutre](https://raw.githubusercontent.com/jpedro/master/master/docs/strong.jpg) -->\n<!-- ![Strong password](https://raw.githubusercontent.com/jpedro/master/master/docs/blink.gif) -->\n\nThis is inspired by [spectre.app](https://spectre.app/) but simpler.\nThis uses a sha256 hashed combination of\n`username + password + service + version` (`version` is now locked to\n`0`) to generate the same password, over and over again, thus\neliminating the need to store, maintain and back up other generated\npasswords.\n\n[jpedro.github.io/master](https://jpedro.github.io/master/) has the\nbrowser experience.\n\nThe used service name list is kept under the file\n`~/.config/master/list.txt` (or whatever `MASTER_LIST` points to)\n*purely for autocompletion*, which will be added later.\n\nEventually, the idea is to create a simple browser extension that uses\nthe URL domain name as the service.\n\n\n## Install\n\n    pip install master\n\n<!--\nYes, yes. The package is called `masterpass` but the binary is called\n`master`. To be fixed after [#2582](https://github.com/pypi/support/issues/2582)\nis resolved.\n-->\n\n\n## Usage\n\n```\n$ master --help\n\nNAME\n    master \u2014 Generates deterministic passwords for services\n\nUSAGE\n    master NAME                 Gets the password for service NAME\n    master -l, --list           Lists all stored services\n    master -r, --remove NAME    Removes service NAME from the stored list\n    master -v, --version        Shows the version\n    master -h, --help           Shows this help\n\n```\n\n\n## Environment variables\n\n| Name                | Default                       |\n| ------------------- | ----------------------------- |\n| `MASTER_LIST`       | `~/.config/master/list.txt`   |\n| `MASTER_USERNAME`   | (None) [1]                    |\n| `MASTER_PASSWORD`   | (None) [1]                    |\n| `MASTER_SEPARATOR`  | `-`                           |\n| `MASTER_LENGTH`     | `6`                           |\n| `MASTER_CHUNKS`     | `6`                           |\n\nUsing these default settings, it will generate a password that's 41\ncharacters long. 6 chunks of 6 character long with 5 separators in\nbetween.\n\n> *Note*\n> [1] If you don't set the `MASTER_USERNAME` or the `MASTER_PASSWORD` you\n> will be prompted for them.\n\n\n## Todos\n\n- [ ] Make the `MASTER_LIST` a directory to avoid git conflicts.\n- [ ] Integrate the user name with Oauth2 providers.\n      Maybe the `sub` after an authentication flow can be used instead\n      of the flat username. Cons: the email provider can change for the\n      same email address. Plus, not 100% sure if one wants to tie\n      passwords to an email.\n- [ ] Lock (close) the master page after 30 seconds of inactivity.\n",
    "bugtrack_url": null,
    "license": "MIT",
    "summary": "Deterministic password generator",
    "version": "0.2.5",
    "project_urls": {
        "Download": "https://github.com/jpedro/master/tarball/master",
        "Homepage": "https://github.com/jpedro/master"
    },
    "split_keywords": [
        "deterministic",
        "password",
        "generator"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "4446c0ce2af29f592b9036ce2870368f3751ba43678095b4d68da74de3163264",
                "md5": "5e0d0bd66087226718b2d554d68e8544",
                "sha256": "374aaa9d8ae902831e252f0da73388ac4ab15437dbfce3c03f93de4881a9b4ae"
            },
            "downloads": -1,
            "filename": "master-0.2.5-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "5e0d0bd66087226718b2d554d68e8544",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3",
            "size": 8595,
            "upload_time": "2024-09-05T21:00:50",
            "upload_time_iso_8601": "2024-09-05T21:00:50.016454Z",
            "url": "https://files.pythonhosted.org/packages/44/46/c0ce2af29f592b9036ce2870368f3751ba43678095b4d68da74de3163264/master-0.2.5-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "1509cac9d328ca3c2e0b7e868ef80d950fed7880b0f48168bfd2dc8786aa3965",
                "md5": "dd5846f8ffbafffd4a5f1f0838de9dcd",
                "sha256": "1531a957f23d22d9496777fe702b772773baca3fecac395cd2fb167dd9940cc1"
            },
            "downloads": -1,
            "filename": "master-0.2.5.tar.gz",
            "has_sig": false,
            "md5_digest": "dd5846f8ffbafffd4a5f1f0838de9dcd",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3",
            "size": 6676,
            "upload_time": "2024-09-05T21:00:51",
            "upload_time_iso_8601": "2024-09-05T21:00:51.348115Z",
            "url": "https://files.pythonhosted.org/packages/15/09/cac9d328ca3c2e0b7e868ef80d950fed7880b0f48168bfd2dc8786aa3965/master-0.2.5.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-09-05 21:00:51",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "jpedro",
    "github_project": "master",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "requirements": [],
    "lcname": "master"
}
        
Elapsed time: 1.30509s