Skip to main content

jk_pwdgen

Introduction

This python module provides support for password generation.

Information about this module can be found here:

Why this module?

Every user needs strong passwords for various services used. Especially system administrators need passwords of good quality. This python module provides ways to easily generate strong passwords locally.

Limitations of this module

The implementations provided here makes use of default implementations of random number generators in Python. This is a Mersenne Twister and uses /dev/urandom. The quality of randomness is limited to the quality of the underlying implementation in Python. We should assume that the underlying implementation in Python is sufficiently tested and does not contain severe bugs. However it is important to realize that the quality of this underlying implementation is a limiting factor.

What is a (sufficiently) good password

Good passwords ...:

  • should be random. The more random the better. Passwords that contain words which can be found in a human readable dictionary aren't very good.
  • should contain numbers. This increases the complexity.
  • should contain special characters. This increases the complexity as well.
  • should not contain a high variety of characters. This as well increases the complexity.

The password generator provided here aims to meet these criteria.

How to use this module

Import this module

Please include this module into your application using the following code:

import jk_pwdgen

Instantiate a password generator

Now you can instantiate a password generator (and configure it as desired):

pwdGen = jk_pwdgen.PasswordGenerator()
pwdGen.setLength(24)

Generate a password

A password can then be generated like this:

print(pwdGen.generate())

How to use the standalone tool

Run the password generator

This module comes with a standalone program named pwdgen.py. After installing this module you should be able to invoke it via command line. It basically performs exactly those steps described above in order to generate a password. Just execute pwdgen.py such as this:

$ pwdgen.py
mS-UMb5JGSd.LVwszF54Hw~v
$ _

Help text

For more details run pwdgen.py -h to display this help text:

pwdgen [options] - Generate strong passwords.

  Description:

    This tool assists in the generation of strong passwords. Generation is based on the Python
    random number generator random.Random. According to the Python documentation this RNG is
    based on Mersenne Twister and os.urandom(), so it should provide sufficient randomness for
    password generation.

    This tool will verify that passwords generated are of sufficient by verifying that the
    correct number of special characters as well as enough numeric characters are present in
    the password generated.

    In order to use this password generation tool just run it. On each run it will generate
    one or more passwords (depending on arguments specified). All passwords are printed to
    STDOUT line by line.

  Options:

    -h    --help                       Display this help text.
    -n n                               Number of passwords to generate. (Default: 1)
    -l n  --length n                   Length of password to generate. (Default: 24)
          --minNumberOfNumericChars n  Minimum number of numeric characters. (Default: 2)
          --numberOfSpecialChars n     Minimum number of special characters. (Default: 3)
          --prohibitedChars s          Prohibites characters. (Default: "0l")

  Author:

    Jürgen Knauth <jk@binary-overflow.de>

  Return codes:

    0  Everything is okay.
    1  An error occurred.

  License:

    This program is free software: you can redistribute it and/or modify it under the terms of
    the Apache Software License as published by Apache Software Foundation in version 2. For
    more details see the Apache Software License, which should be vailable at:
    https://www.apache.org/licenses/LICENSE-2.0

Contact Information

This work is Open Source. This enables you to use this work for free.

Please have in mind this also enables you to contribute. We, the subspecies of software developers, can create great things. But the more collaborate, the more fantastic these things can become. Therefore Feel free to contact the author(s) listed below, either for giving feedback, providing comments, hints, indicate possible collaborations, ideas, improvements. Or maybe for "only" reporting some bugs:

License

This software is provided under the following license:

  • Apache Software License 2.0

Metadata

Release files for jk_pwdgen 0.2024.11.3.4

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for jk_pwdgen 0.2024.11.3.4
File Size Uploaded
jk_pwdgen-0.2024.11.3.4.tar.gz 10.1 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for jk_pwdgen 0.2024.11.3.4
File Interpreter ABI Platform
jk_pwdgen-0.2024.11.3.4-py3-none-any.whl Python 3 none any Details

Total release size: 21.7 kB

Release files / jk_pwdgen-0.2024.11.3.4.tar.gz

Download URL jk_pwdgen-0.2024.11.3.4.tar.gz
Size 10.1 kB
Tags Source
SHA-256 checksum
How to use checksums
decf617a087e71a83200ea8aceef63bbe8da9a22db146182f10cd7dd5043eb2e
BLAKE2b-256 checksum
How to use checksums
cea267edf935e14ef5936668f9d870a4b0bfb72be0e39db5c6ef7a2d6a2f669d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via python-requests/2.32.3

Release files / jk_pwdgen-0.2024.11.3.4-py3-none-any.whl

Download URL jk_pwdgen-0.2024.11.3.4-py3-none-any.whl
Size 11.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
15ac11a210d966de7ba91240f7593ce814a9e1e18109ef5b10d585012339c862
BLAKE2b-256 checksum
How to use checksums
bae52b0a55ec7827e14e64d278402bd0b26b5581d12a6c19db3741555c679ca7
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via python-requests/2.32.3
Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page