Skip to main content
This is a pre-production deployment of Warehouse. Changes made here affect the production instance of PyPI (
Help us improve Python packaging - Donate today!

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.

Release History

Release History

This version
History Node


History Node


History Node


History Node


Download Files

Download Files

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

File Name & Checksum SHA256 Checksum Help Version File Type Upload Date
mpw-0.4-py2.py3-none-any.whl (18.0 kB) Copy SHA256 Checksum SHA256 py2.py3 Wheel Feb 7, 2015
mpw-0.4.tar.gz (12.9 kB) Copy SHA256 Checksum SHA256 Source Feb 7, 2015

Supported By

WebFaction WebFaction Technical Writing Elastic Elastic Search Pingdom Pingdom Monitoring Dyn Dyn DNS Sentry Sentry Error Logging CloudAMQP CloudAMQP RabbitMQ Heroku Heroku PaaS Kabu Creative Kabu Creative UX & Design Fastly Fastly CDN DigiCert DigiCert EV Certificate Rackspace Rackspace Cloud Servers DreamHost DreamHost Log Hosting