Skip to main content

firemelon — Simple Password Generator

Project description

firemelon - a simple password generator

Why?

Passwords don't have to be something like GY/hyTJmw#B$E3,x.
Simple combinations like sure,happy,95194,sad or 2874;people;only;penguin are also pretty strong (see below).
But those are also easy to remember (and you can even turn it into some drawing to remember while still keeping it a secret)

This module is doing exactly that - creating passwords using random words and, sometimes, numbers.

Is it really strong?

  • It is pretty diverse:
    • With default settings (complexity=4, sep=random) you get 5513210562816000 different passwords
    • With one specific separator (or no separator at all) you get 945337888000 different passwords - significantly less, still many.
    • With one specific separator (or no separator at all) and complexity=3 you get 231852000 different passwords - still many.
  • You definitely should use 2FA for important accounts, no matter how strong is your password.
  • Decent services should have a cooldown for too many wrong password attempts
  • Most passwords are stolen (e.g. with phishing), not brute-forced, those have nothing to do with password strength
  • Use different passwords for different accounts (or at least don't use the same password everywhere), of course

Installation

As simple as python -m pip install firemelon

Basic usage

from firemelon import passgen

# complexity=4, sep=random, use_number=True
print(passgen()) # "hot_legal:498;goose"

Into the deep

If you want to change generation options, pass complexity and sep params:

from firemelon import passgen

print(passgen(complexity=2, sep=":", use_number=False)) # "idea:night"

Complexity just sets how much parts the result will have, and sep is a separator between parts.
If you won't pass sep, every separator would be chosen at random.
If you will pass a list of separators as sep, every separator would be chosen at random from your list.
use_number is pretty straightforward.

Generator

If you want to go even further and construct a password yourself, you'll need a Generator:

from firemelon import Generator as gen

password = "".join([gen.adjective(), " ", gen.noun(), gen.sep(), gen.number(3)]) # "pure fish,268"

print(password)

.variance

Generator has a variance method with exactly the same signature as generate, but which returns a number of variations for specific arguments.

from firemelon import Generator

gen = Generator()
print(gen.variance()) # 5513210562816000

Contributing

Why? It's finished.

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

firemelon-1.1.4.tar.gz (5.5 kB view details)

Uploaded Source

File details

Details for the file firemelon-1.1.4.tar.gz.

File metadata

  • Download URL: firemelon-1.1.4.tar.gz
  • Upload date:
  • Size: 5.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/4.0.1 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.60.0 CPython/3.9.5

File hashes

Hashes for firemelon-1.1.4.tar.gz
Algorithm Hash digest
SHA256 7725b550539c64e50c573be3077825b5bd10b4f194657cbc8049df6ea973d3a1
MD5 2d1d468eaaaa9e21cee81fc139cd608a
BLAKE2b-256 8691d643a693bed0243b0ba9c100eea0fa1a57f2e2867fb26abf00b226e71525

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