This is a pre-production deployment of Warehouse, however changes made here WILL affect the production instance of PyPI.
Latest Version Dependencies status unknown Test status unknown Test coverage unknown
Project Description

mkpassphrase

mkpassphrase is a commandline script and an associated package for generating passphrases by concatenating words chosen from a dictionary file that contains one word per line (such as the standard /usr/share/dict/words on *nix systems. It generates passphrases like flippant Attests Ivory mildly Roamers by default and is highly configurable.

Installation

To install or upgrade to the latest stable version of mkpassphrase from PyPI, you can install it as your normal user by running:

$ pip install --user --upgrade mkpassphrase

On Linux, that installs mkpasphrase to ~/.local/bin, which you may need to add to your $PATH.

Or you can install it globally by running:

$ sudo pip install --upgrade mkpassphrase

Usage

Generate a passphrase using the default settings:

$ mkpassphrase
Twelfth Ninja cubist Pepsin cattle

60,298 unique candidate words
79-bit security level

The security level reported is based only on the number of words in the passphrase and the number of possible words (as well as whether the --lowercase option is chosen), and does not include other factors such as padding or a custom delimiter, which would increase the security level. You can also add the -q option to only see the passphrases.

If you find that your word file contains lots of words that you don’t like, or you prefer to run mkpassphrase multiple times and find “nice” words among the multiple outputs, you can use the -t option to output multiple passphrases, like so:

$ mkpassphrase -q -t 20
Feeding wane Fog walden modes
agave Rune Swapped lewd indore
Graces hire portal Brick mislay
Hobnob cellini Caducei Dinah bawdily
Succors lesley dungs noway scans
Jangles tipi Noses Tremors Antioch
Yuppy grasps praia Boor Argyle
Bleats Baste barks Chocked Funking
Kingpin Tsar guzman Reader pis
ledges fixity Foaling spreed quota
grid beside Egress aging Opinion
defrays limped magi Scabbed petards
Dustpan Kiddo Avid huddles Futures
frankly Diviner Midterm punker minuses
toys Tinfoil ramses Dingoes Lewdly
anion Cease Slovak Tadzhik limp
Encase soybean crusted lipids Jimmie
cuisine Wedding morns Rods upper
Grub octet pepys Condemn Reich
sappier massey Wrecker loudly horacio

Options

Use the –help option to see the available options:

$ mkpassphrase --help
usage: mkpassphrase [-h] [-n NUM_WORDS] [--min MIN] [--max MAX] [-f WORD_FILE]
                    [--lowercase] [--non-ascii] [-p PAD] [-d DELIM] [-t TIMES]
                    [-V] [-q]

Generate a passphrase.

optional arguments:
  -h, --help            show this help message and exit
  -n NUM_WORDS, --num-words NUM_WORDS
                        Number of words in passphrase
  --min MIN             Minimum word length
  --max MAX             Maximum word length
  -f WORD_FILE, --word-file WORD_FILE
                        Word file path (one word per line)
  --lowercase           Make each word entirely lowercase, rather than the
                        default behavior of choosing Titlecase or lowercase
                        for each word (with probability 0.5)
  --non-ascii           Whether to allow words with non-ascii letters
  -p PAD, --pad PAD     Pad passphrase using PAD as prefix and suffix
  -d DELIM, --delimiter DELIM
                        Use DELIM to separate words in passphrase
  -t TIMES, --items TIMES
                        Generate TIMES different passphrases
  -V, --version         Show version
  -q, --quiet           Print just the passphrase

Supported Python Versions and Operating Systems

mkpassphrase is supported on Python-2.7 (CPython or PyPy), Python-3.3+ for CPython, and Python-3.2.5+ for PyPy. It is tested on Linux, but should work on any OS with a supported Python version.

Changes

v1.0.0

  • 1.0 bump, and change to ‘stable’
  • python3 support is limited to 3.2.5+ (python2.7 still supported)
  • added testing against python-3.6 (alpha3 currently)

v0.9.1

  • minor adjustments to python2/3 compatibility checks
  • pep257 docstring updates

v0.9.0

  • much faster generation of multiple passphrases using -t
  • minor verbiage tweaks for non-quiet output

v0.8.0

  • use cryptographically secure pseudo-random number generator if available
  • added standard imports to help with python2/3 compatibility

v0.7.0

  • added -t|–times N to allow generating multiple passphrases w/ one command

v0.6.8

  • include CHANGES.rst and README.rst in sdist via MANIFEST.in

v0.6.7

  • cosmetic changes for better PyPI display

v0.6.6

  • cosmetic changes for better PyPI display

v0.6.4

  • cosmetic changes for better PyPI display

v0.6.2

  • added -q option to omit extra information about how many unique candidate words were found and how many passphrases were possible
  • fix for –ascii option not being used, and improved encoding handling
  • start documenting changes in CHANGES.rst
  • use README and CHANGES as long_description for improved pypi info
Release History

Release History

1.0.0

This version

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.9.0

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.8.0

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.7.0

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.6.8

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.6.7

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.6.6

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.6.5

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.6.4

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.6.3

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.6.2

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.6.1

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.6.0

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.5

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

Download Files

Download Files

TODO: Brief introduction on what you do with files - including link to relevant help section.

File Name & Checksum SHA256 Checksum Help Version File Type Upload Date
mkpassphrase-1.0.0-py2.py3-none-any.whl (11.8 kB) Copy SHA256 Checksum SHA256 py2.py3 Wheel Jul 12, 2016

Supported By

WebFaction WebFaction Technical Writing Elastic Elastic Search Pingdom Pingdom Monitoring Dyn Dyn DNS HPE HPE Development 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