Skip to main content

A Python implementation of the Master Password algorithm.

Project description

Master Password

This is a Python implementation of the Master Password algorithm by Maarten Billemont. It also comes with a command line interface that lets you compute passwords for your sites based on your master password.


This package requires Python 3 (tested with 3.4) and uses scrypt, cryptography (you need a compiler for both), click, and pyperclip.

Installation with pip:

$ pip install mpw

Or better, use pipsi:

$ pipsi install --python `which python3` mpw

This app copies the password to the clipboard. This should work out-of-the-box on OS X and Windows. On Linux, mpw makes use of the xclip or xsel commands, which should come with the os. Otherwise run:

$ sudo apt-get install xclip
$ # or
$ sudo apt-get install xsel

Alternatively, the gtk or PyQT4 modules can be installed.

Binary executables (e.g., an installer for Windows) may follow.


$ # Add a user
$ mpw adduser Alice
Enter master password:
Confirm master password:
Added user "Alice".
# Add a site for Alice
$ mpw addsite test-site
Enter master password for "Alice":
Added site "test-site" for user "Alice".
$ # Actually get the password
$ mpw get test-site
Enter master password for "Alice":
Password for "test-site" for user "Alice" was copied to the clipboard.
$ # You can also pipe a password to other commands:
$ mpw get -e server-root | sudo -S vim /etc/crontab

For more information take a look at the help:

$ mpw --help


0.4 – 2015-02-07

  • [CHANGE] Ask the user three times for their password if they make a typo instead of giving up after the first time.

  • [NEW] Implemented v3 of the algorithm. It behaves like v2 implemented in mpw 0.3, because I accidently fixed the problems of the official v2 implementation in my own implementation.

0.3 – 2015-02-01

  • [CHANGE] mpw get no longer creates a user or site if they don’t exist.

  • [CHANGE] New config file format.

  • [NEW] Support for multiple versions of the Master Password algorithm

  • [NEW] Implemented version 2 of the algorithm

  • [NEW] A hashed version of the master key is stored on disk to notify you if you make typos.

  • [NEW] The users’ sites are now being encrypted on disk

  • [NEW] Users can now change their master password

  • [NEW] Passwords can now be echoed to stdout and thus be piped to other commands.

  • [NEW] Lots of test to ensure compatibility with the reference implementation

  • [NEW] 100% line and branch coverage

0.2 – 2014-09-16

  • [NEW] Added a lot of subcommands that allow you to store user and site configuration in a config file

  • [CHANGE] mpw SITE is now mpw get SITE

0.1 – 2014-08-21

  • Initial release.


Master Password is a security product and algorithm by Maarten Billemont, Lyndir.

The Python implementation of the Master Password algorithm was created by Stefan Scherfke.

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

mpw-0.4.tar.gz (12.9 kB view hashes)

Uploaded Source

Built Distribution

mpw-0.4-py2.py3-none-any.whl (18.0 kB view hashes)

Uploaded Python 2 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