xkcdpass

Flexible, scriptable passphrase generator inspired by XKCD 936

Repository activity
  • Stars1.4k
  • Forks191
  • Open Issues8
redacted-xkcd-password-generator health score - Linux Foundation Insights
License

BSD-3-Clause

Languages
  • Python
  • Roff
  • Shell
Get it:GitHub
xkcdpass screenshot

About xkcdpass

xkcdpass generates strong multiword passphrases from word lists, with an interface for command line use and Python imports. It is aimed at people who want memorable passwords such as correct horse battery staple without giving up control over word choice and format.

It can generate one or many passphrases, constrain words by length or regular expression, and support acrostics, delimiters, separators, and several case modes. Word file selection is configurable, with built-in lists such as eff-long, eff-short, eff-special, legacy, and multiple language lists. It also reports metrics with a verbose option and can allow a weak RNG fallback if needed.

xkcdpass is installable with pip and requires Python 3.4 or later. It runs entirely offline and works with any one-word-per-line word file, so you can supply your own dictionary in any language. The same tool can be called from the command line or imported as a Python module for use inside other programs.

Key features

  • Generate one or many passphrases from configurable word lists
  • Filter words by minimum, maximum, and valid characters
  • Use acrostics, delimiters, separators, and case modes
  • Report metrics including word list entropy
  • Optional weak RNG fallback if secure RNG is unavailable

Details

First released
2011
Platforms
CLI
Deployment
offline-first
Language
Python 3.4+
Input
One word per line word files
Install
pip