skip to navigation
skip to content

mpw 0.4

A Python implementation of the Master Password algorithm.

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.

File Type Py Version Uploaded on Size
mpw-0.4-py2.py3-none-any.whl (md5) Python Wheel py2.py3 2015-02-07 17KB
mpw-0.4.tar.gz (md5) Source 2015-02-07 12KB