Skip to main content

Generate memorable passphrases using pseudowords.

Project description

applephrase

https://xkcd.com/936/

applephrase is a commandline utility to generate memorable passphrases composed of a number of randomized pseudowords and a brief random string. The pseudowords can be generated for a number of languages: Dutch, Lithuanian, French, English, German, Polish, Basque, Spanish, Italian, Serbocroatian Latin, Serbocroatian Cyrillic, Vietnamese, Estonian.

Some examples:

Odešišćima-Krškrme-aKpmvO
Ушоут-Џкићак-ON420G
Brühölde-Beruhrem-dg6fgP
Toevenboot-Rijswormen-yOrofH
Kindati-Mirdez-tmGS5k
Curpina-Beonangica-JVMK0t
Démièrea-Rammardée-nhlpwd
Naaled-Läägalide-R6qy04
Oằnẻo-Namchất-KaRrOm
Settenti-Ivonendo-kfOC8m
Trazonents-Oluviungly-nBwpng
Ulywcał-Ścipczyk-6hmSx7
Sugrirėsia-Švinučas-c2txG9

The idea is that the use of pseudowords generates enough entropy in fewer words compared to regular passphrases, and protect against dictionary attacks. A terminating number of random alphanumeric characters helps get around the most common password requirements, and of course adds to the entropy. Since the pseudowords are (hopefully) pronouncable and the random characters limited in number, the resulting passphrase is memorable and still quite short.

Install

You can download applephrase by installing it from PyPI!

pip install applephrase

Alternatively, install or run it from a clone of this repo.

Usage

Run applephrase with desired iso-code of the language you wish to generate passwords for, e.g.:

$ applephrase nl

Use the options to generate "true" correct-horse-battery-staple-type passwords:

$ applephrase nl --nw 4 --nc 0 --sep "-" --nocaps

For a list of all options and languages, type applephrase --help.

Wuggy

This project makes heavy use of Wuggy, the software that generates the pseudowords. The upstream Python package does not install anymore, but this is easily resolved by removing the unnecessarily strict versions from the requirements file. I made some more modifications to it and added the Estonian and Lithuanian languages found in forks. Wuggy is not very fast but it is fast enough and is the only project I know of to be available in Python and generate pseudowords in languages other than English.

For Serbocroatian Cyrilic and German I had to add a workaround that increases runtime, so don't be worried when it takes a minute.

I include a copy of my modified Wuggy in applephrase/wuggy. If anyone is interested, I can break it out again (or help upsteam update their package).

Alternatives

https://github.com/chrplr/openlexicon/tree/master/apps/unipseudo is fast, but written in R/Shiny. Sources seem available, but it's unclear what license the lexicon is provided under.

Project details


Download files

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

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

applephrase-1.0.2-py3-none-any.whl (20.9 MB view details)

Uploaded Python 3

File details

Details for the file applephrase-1.0.2-py3-none-any.whl.

File metadata

  • Download URL: applephrase-1.0.2-py3-none-any.whl
  • Upload date:
  • Size: 20.9 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.5

File hashes

Hashes for applephrase-1.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 6d03cb143308ba593673263db04f93359d5e53f1ef64cc71edd5aca9b49bf8d6
MD5 3eac314a7cf85af40f30f55356c4f2dd
BLAKE2b-256 8f9f773e1965353661293b545c7fc504168656d0b38a967726a2636ee2fdbf5d

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page