Skip to main content

A bad password generator for bad websites with bad password policies

Project description

LANGUAGE VERSION build status MAINTAINED MAINTAINABILITY LICENSE STYLE

To create and remember passwords for online services, the best practice for most folks online is to use a password management tool such as Bitwarden to generate long, cryptographically random passwords. Then, a very strong passphrase is used to lock the password manager.

Unfortunately, in a misguided attempt to encourage users to choose better passwords, many websites and apps enforce restrictive password policies. These policies inhibit users from using cryptographically random password generators: a long, high-entropy password is more likely to violate such rules, which means a security-savvy user may have to attempt several “random” passwords before one is accepted. This punishes users who are trying to follow best practices.

Enter dumbpw. dumbpw allows you to configure a set of rules, and then it will generate a cryptographically secure password that conforms to those dumb rules.

If all you need is a password generator, you should not use this.

Installation

pip3 install dumbpw

Usage

$ dumbpw --help
Usage: dumbpw [OPTIONS] LENGTH

Options:
--version                       Show the version and exit.
--min-uppercase INTEGER         The minimum number of uppercase characters.
--min-lowercase INTEGER         The minimum number of lowercase characters.
--min-digits INTEGER            The minimum number of digit characters.
--min-specials INTEGER          The minimum number of special characters.
--blocklist TEXT                Characters that may not be in the password.
                                [default: '";]
--allow-repeating / --reject-repeating
                                Allow or reject repeating characters in the
                                password.  [default: reject-repeating]
--specials TEXT                 Non-alphanumeric characters that may be in
                                the password. Pass '-' to read from standard
                                input.
--help                          Show this message and exit.

Known issues

  • dumbpw uses secrets to generate passwords. If the generated string doesn’t meet the given requirements, dumbpw discards it and generates another, until one passes. Therefore, if you ask dumbpw to generate a long password with high minimums, it will run for a very long time before terminating.

  • Likewise, if your minimums require characters that are banned in the blocklist option, dumbpw will run forever.

  • The author is neither a cryptographer, nor a security expert. There has been no formal, independent, external security review of this software. As explained in the LICENSE, the author assumes no responsibility or liability for your use of this software.

Project details


Download files

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

Source Distribution

dumbpw-0.5.0.tar.gz (8.4 kB view details)

Uploaded Source

Built Distribution

dumbpw-0.5.0-py3-none-any.whl (8.1 kB view details)

Uploaded Python 3

File details

Details for the file dumbpw-0.5.0.tar.gz.

File metadata

  • Download URL: dumbpw-0.5.0.tar.gz
  • Upload date:
  • Size: 8.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.5.1 CPython/3.11.6 Linux/6.6.8-zen1-1-zen

File hashes

Hashes for dumbpw-0.5.0.tar.gz
Algorithm Hash digest
SHA256 77ecd62a7fed476f8403477f395f651bb68d881c6d4045fb07861afb6e2e8b19
MD5 46ac28513d4d97a6b1a2c055580e5d88
BLAKE2b-256 8d6a680615d6f4f4b0fd083278f2e1ce250224e641728f7e9ca628d6393b4509

See more details on using hashes here.

File details

Details for the file dumbpw-0.5.0-py3-none-any.whl.

File metadata

  • Download URL: dumbpw-0.5.0-py3-none-any.whl
  • Upload date:
  • Size: 8.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.5.1 CPython/3.11.6 Linux/6.6.8-zen1-1-zen

File hashes

Hashes for dumbpw-0.5.0-py3-none-any.whl
Algorithm Hash digest
SHA256 6416e20728cac09aeba40a049c19e7e17f22bcb466b221922e624f12d53b6cdc
MD5 f0f9e5ae3cc9d6121e3c83053f426bcb
BLAKE2b-256 96fe2e29f0274710546aee39b18a1ad5e3206fc151887841e150b11b7f0597a9

See more details on using hashes here.

Supported by

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